W jakiej kolejności są uporządkowane daty? Na pewno nie porządek alfanumeryczny.
ls -lt
sortuje według czasu modyfikacji. Ale potrzebuję czasu na stworzenie.
files
ls
timestamps
InquilineKea
źródło
źródło
Odpowiedzi:
Większość jednorożców nie ma pojęcia czasu tworzenia pliku. Nie można
ls
go wydrukować, ponieważ informacje nie są rejestrowane. Jeśli potrzebujesz czasu utworzenia, skorzystaj z systemu kontroli wersji : zdefiniuj czas utworzenia jako czas zameldowania.Jeśli twój wariant unixa ma czas na stworzenie, spójrz na jego dokumentację. Na przykład w Mac OS X (jedynym znanym mi przykładzie) użyj
ls -tU
. Windows przechowuje również czas utworzenia, ale nie zawsze jest narażony na porty narzędzi uniksowych, na przykład Cygwinls
nie ma opcji, aby to pokazać.stat
Narzędzie może pokazać czas tworzenia, zwany „czas narodzin” w narzędzia GNU, więc pod Cygwin można pokazać pliki posortowane według czasu urodzenia zstat -c '%W %n' * | sort -k1n
.Zauważ, że ctime (
ls -lc
) to nie czas tworzenia pliku , to czas zmiany i- węzła . Czas zmiany i-węzła jest aktualizowany za każdym razem, gdy cokolwiek zmienia się w pliku (zawartość lub metadane), z wyjątkiem tego, że ctime nie jest aktualizowany, gdy plik jest tylko odczytywany (nawet jeśli atime jest aktualizowany). W szczególności ctime jest zawsze nowszy niż mtime (czas modyfikacji zawartości pliku), chyba że mtime został wyraźnie ustawiony na datę w przyszłości.źródło
ls -c
.ls --help
pokazuje, co-c
robi w połączeniu z-l
i-lt
.-U
sortuje według czasu utworzenia. W systemie Solaris 10.x:/usr/bin/ls
nie obsługuje-U
,/usr/ucb/ls
obsługuje-U
i sortuje według czasu utworzenia. Te wyniki oczywiście zależą przede wszystkim od systemu plików przechowującego te informacje.Niestety
stat(2)
interfejs API nie pozwala uzyskać czasu na utworzenie pliku, ponieważ nie jest to wymagane przez standardy uniksowe.Jednak niektóre systemy plików, ponieważ
ext4
, zapisują te informacje w obrębie metadanych plików. Po prostu nie ma standardowego sposobu na zdobycie go, ale istnieje sposób (ext
tylko systemy plików):Otrzymasz coś takiego, wspominając
crtime
( niectime
!), Jeśli użyjeszext4
.To polecenie może zająć trochę czasu, prawdopodobnie dlatego, że wyświetla również wszystkie zakresy związane z plikiem.
Teraz, jeśli chcesz zamówić pliki według daty utworzenia, myślę, że nie jest to łatwe (ani właściwie) możliwe. Jak mówi Gilles , prawdopodobnie byłoby łatwiej, gdybyś użył systemu kontroli wersji. Ale możesz spróbować spojrzeć na
ext4
API ...Próbowałem wykonać
stat -c '%w' myfile
polecenie na systemieext4
plików w (dość nowym) systemie Ubuntu bez powodzenia (po prostu odpowiada-
).źródło
f='/path/to/file'; debugfs -R "stat $f" $(df $f|(read a; read a b; echo "$a"))|grep crtime
Oto skrypt Perla, który używa odpowiedzi Totora, aby osiągnąć to, czego chcesz (jeśli twój system plików to ext4).
Działa na moim komputerze domowym (Ubuntu) i moim serwerze (CentOS), ale nie został przetestowany poza tym, więc ymmv.
źródło
Użyj tego polecenia,
ls -lct
aby posortować pliki według daty utworzenia.źródło
ctime
to czas zmiany, a nie tworzenie czasu.