Po prostu to wiem ls -t
i ls -f
podaję różne sortowanie plików i podkatalogów w katalogu.
- Jakie są różnice między datownikiem, czasem modyfikacji i czasem utworzenia pliku?
- Jak uzyskać i zmienić tego rodzaju informacje za pomocą poleceń?
- Pod względem jakiego rodzaju informacji ludzie twierdzą, że plik jest „nowszy” niż inny?
- Jakie zmiany informacji nie spowodują, że plik będzie inny?
Na przykład widziałem, że ktoś napisał:
Domyślnie program rsync sprawdza tylko, czy pliki różnią się rozmiarem i znacznikiem czasu. Nie ma znaczenia, który plik jest nowszy, jeśli jest inny, zostaje nadpisany. Możesz przekazać flagę „--update” do rsync, co spowoduje, że pominie pliki w miejscu docelowym, jeśli są one nowsze niż plik źródłowy, ale tylko o ile są tego samego typu. Oznacza to, że jeśli na przykład plik źródłowy jest plikiem zwykłym, a miejscem docelowym jest dowiązanie symboliczne, plik docelowy zostanie zastąpiony, niezależnie od znacznika czasu.
Na marginesie, czy ten typ pliku oznacza tylko zwykły plik i simlink, a nie taki typ jak pdf, jpg, htm, txt itp.?
źródło
Odpowiedzi:
Istnieją 3 rodzaje „znaczników czasu”:
Aby wyświetlić te informacje, możesz użyć,
stat
która jest częścią coreutils.stat
pokaże ci również więcej informacji, takich jak urządzenie, i-węzły, linki itp.Pamiętaj, że tego rodzaju informacje w dużym stopniu zależą od systemu plików i opcji montowania. Na przykład, jeśli zamontujesz partycję z
noatime
opcją, żadne informacje o dostępie nie zostaną zapisane.Byłoby narzędziem do zmiany znaczników czasu
touch
. Istnieje kilka argumentów, które decydują o tym, który znacznik czasu należy zmienić (np. -A dla czasu dostępu, -m dla czasu modyfikacji) i wpływać na parsowanie nowego określonego znacznika czasu. Zobaczman touch
po więcej szczegółów.touch
może się przydać w połączeniu zcp -u
( „kopiuj tylko wtedy, gdy plik SOURCE jest nowszy niż plik docelowy lub gdy brakuje pliku docelowego” ) lub do tworzenia pustych plików znaczników.źródło
ls -l
. Typ pliku odnosi się do pliku kontra dowiązanie symboliczne (lub innych typów plików, takich jak katalogi lub urządzenia). Nie jaki jest typ danych w pliku (tekst vs. JPEG, itp.).Odpowiedź echox jest poprawna, ale chcę dodać informacje dotyczące czasu utworzenia pliku.
Obsługa systemu plików
Niektóre systemy plików obsługują dodatkowy wpis w i-węźle dotyczący czasu utworzenia (lub czasu urodzenia). Wiem, że ext4 obsługuje tę funkcję, a także JFS i BTRFS .
Jednak większość narzędzi i interfejsu API nie została jeszcze zaktualizowana w celu odczytania tych dodatkowych informacji. Więc chociaż może tam być, nie jest dostępna.
Na przykład w systemie Ubuntu 12.04 LTS otrzymuję następujące informacje o utworzonym dzisiaj pliku:
Widać, że nowsza funkcja statystyki ma pole urodzenia, choć dane wyjściowe wydają się niepoprawne. Za pomocą debugfs możemy uzyskać informacje (crtime jak na systemie plików ext4).
obsługa statx
Od czasu jądra 4.11 pojawiło się nowe wywołanie systemowe statx, oprócz lepszej obsługi Y2038 lub sieciowych systemów plików, oferuje także kilka dodatkowych funkcji, takich jak dostęp
btime
lub czas urodzenia (czas utworzenia). Obsługa ext4 powinna być w tej samej wersji jądra 4.11.W późniejszych wersjach jądra pojawiły się łatki, które dodają obsługę tego nowego syscall: np. BTRFS i F2FS w jądrze 4.13, SMB3 w 4.14, GFS2 w 4.15, NFS w 4.16 itd.
Nadchodzący glibc zapewni wywołanie funkcji do zapytania tego interfejsu (zobacz Phoronix news na temat obsługi statx glibc ). Dlatego wkrótce możemy spodziewać się obsługi tej funkcji w przestrzeni użytkownika.
źródło