В каком порядке упорядочены датированные? Конечно, не буквенно-цифровой порядок.
ls -lt
сортирует по времени модификации. Но мне нужно время создания.
files
ls
timestamps
InquilineKea
источник
источник
Ответы:
В большинстве офисов нет концепции времени создания файла. Вы не можете
ls
распечатать его, потому что информация не записана. Если вам нужно время создания, используйте систему контроля версий : определите время создания как время регистрации.Если у вашего варианта Unix есть время создания, посмотрите его документацию. Например, в Mac OS X (единственный известный мне пример), используйте
ls -tU
. Windows также хранит время создания, но не всегда подвержено воздействию портов утилит unix, например, Cygwinls
не имеет возможности показать это.stat
Утилита может показать время создания, называемое «время рождения» в GNU утилиты, так что под Cygwin вы можете показать файлы , отсортированные по времени рождения сstat -c '%W %n' * | sort -k1n
.Обратите внимание, что ctime (
ls -lc
) - это не время создания файла , а время изменения инода . Время изменения inode обновляется всякий раз, когда изменяется что-либо в файле (содержимое или метаданные), за исключением того, что ctime не обновляется, когда файл просто читается (даже если atime обновляется). В частности, ctime всегда более свежее, чем mtime (время изменения содержимого файла), если только mtime не было явно установлено на дату в будущем.источник
ls -c
.ls --help
показывает, что-c
делает в сочетании с-l
и-lt
.-U
сортировка по времени создания. Под Solaris 10.x:/usr/bin/ls
не поддерживает-U
,/usr/ucb/ls
поддерживает-U
и сортирует по времени создания. Эти результаты, очевидно, зависят от файловой системы, хранящей эту информацию в первую очередь.К сожалению,
stat(2)
API не обеспечивает способ получения времени создания файла, так как это не требуется стандартами Unix.Однако некоторые файловые системы
ext4
сохраняют эту информацию в метаданных файла. Просто не существует стандартного способа получить его, но есть способ (ext
только для файловых систем):Вы бы получили что-то подобное упоминание
crtime
( неctime
!), Если вы используетеext4
.Эта команда может занять некоторое время, вероятно, потому что она также перечисляет все экстенты, связанные с файлом.
Теперь, если вы хотите упорядочить файлы по дате создания, я думаю, это не легко (и не правильно) возможно. Как говорит Жиль , было бы проще, если бы вы использовали систему контроля версий. Но вы можете попытаться взглянуть на
ext4
API ...Я попытался выполнить
stat -c '%w' myfile
команду наext4
файловой системе в (достаточно недавней) системе Ubuntu, но безуспешно (она просто отвечает-
).источник
f='/path/to/file'; debugfs -R "stat $f" $(df $f|(read a; read a b; echo "$a"))|grep crtime
Вот скрипт Perl, который использует ответ Totor для достижения того, чего вы хотите (если у вас файловая система ext4).
Работает на моей домашней машине (Ubuntu) и на моем сервере (CentOS), но не тестируется сверх того, поэтому ymmv.
источник
Используйте эту команду
ls -lct
для сортировки файлов по дате создания.источник
ctime
время изменения, а не время создания.