Вы могли использовать что-то, любят, находят и вид.
find . -type f -ls | sort -r -n -k7
( -ls
опция не является стандартной, но найдена во многих, находят реализации, не только GNU один. В GNU находят и другие, он отображает что-то подобное ls -li
за немногим исключением, например, файлы с ACLs не отмечены с +),
Если имена файлов могут содержать символы новой строки, с GNU находят и вид GNU:
find . -type f -ls -printf '\0' | sort -zk7rn | tr -d '\0'
Unix не отслеживает дату создания. Единственная информация это доступно, обычно прошлые разы, файлы были:
- Доступ - прошлый раз файл был считан
- Измените - в прошлый раз, когда файл был изменен (содержание было изменено),
- Изменение - прошлый раз метаданные файла был изменен (например, полномочия)
Можно было связать даты с конкретным файлом с помощью stat
команда.
$ stat ffmpeg
File: `ffmpeg'
Size: 19579304 Blocks: 38248 IO Block: 4096 regular file
Device: fd02h/64770d Inode: 10356770 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 500/ saml) Gid: ( 501/ saml)
Access: 2013-11-26 10:49:09.908261694 -0500
Modify: 2013-11-02 17:05:13.357573854 -0400
Change: 2013-11-02 17:05:13.357573854 -0400
Если Вы используете OSX файловая система, это используется, под которым Unix является HFS. Это - один из некоторых (что я знаю), который сохраняет дату создания в файловой системе, наряду со временем изменения и т.д. подобной другому Unixes.
выборка
Магазины звукозаписей Файла множество метаданных о файле включая его CNID, размер файла, три метки времени (то, когда файл был создан, в последний раз изменило, в последний раз сохраненный), первые степени файла ветвей данных и ветвей ресурсов и указателей на первые данные файла и записи степени ресурса в Файле Переполнения Степени. Запись Файла также хранит два 16-байтовых поля, которые используются Средством поиска, чтобы сохранить атрибуты о файле включая вещи как его код создателя, ввести код, окно, файл должен появиться в и его местоположение в окне.
Метки времени всегда сохраняются в файловой системе, таким образом, Вы ограничены к любому времени, отследив, предлагается через них (EXT3, EXT4, XFS, и т.д.).
Если Вам когда-либо любопытно, смотрят на эту названную тему Википедии: Сравнение файловых систем. Это имеет самый обширный список файловых систем, о которых я знаю наряду с хорошей таблицей различных функций и состоянием того, поддерживается ли это или не в данной файловой системе.
OSX отслеживает создание файла, но большинство других нельдов не делает, таким образом, нет никакого способа знать прошедшее время начиная с создания файла. Можно получить прошедшее время начиная с его последнего изменения в примерно любой операционной системе.
Нет никакой портативной утилиты оболочки для получения времени изменения файла, кроме ls
который произвел, это почти невозможно проанализировать. В соответствии с Linux, следующая команда печатает возраст файла:
echo $(($(date +%s) - $(date +%s -r "$filename"))) seconds
echo $((($(date +%s) - $(date +%s -r "$filename")) / 86400)) days
В соответствии с Linux, можно использовать stat -c %Y -- "$filename"
как синоним date +%s -r "$filename"
.
OSX's date
и stat
команды отличаются. Можно использовать следующую команду:
echo $(($(date +%s) - $(stat -t %s -f %m -- "$filename"))) seconds
Невстроенным системам Linux и OSX установили Perl по умолчанию.
perl -l -e 'print -M $ARGV[0], " days"' "$filename"
stat
, в Linux syscall не был переделан так, необходимо обратиться к взламыванию с debugfs
.
– wingedsubmariner
27.11.2013, 06:20
Можно использовать stat -f%B
, ls -lU
или mdls -n kMDItemFSCreationDate
, чтобы увидеть время создания (рождения) в операционной системе X:
$ stat -f%B file
1402340803
$ ls -lU file
-rw-r--r-- 1 admin staff 108514 Jun 9 22:06 file
$ mdls -n kMDItemFSCreationDate file
kMDItemFSCreationDate = 2014-06-09 19:06:43 +0000
$ echo $((($(date +%s)-$(stat -f%B file))/86400))
10
На основе ответа Жиля, здесь функция bash, которая возвращает возраст файла в секундах или ошибку.
function fileAge
{
local fileMod
if fileMod=$(stat -c %Y -- "$1")
then
echo $(( $(date +%s) - $fileMod ))
else
return $?
fi
}
Для стандартного Unix stat -c %Y
, как видно из других ответов, дает вам время «последнего изменения». Но в некоторых случаях вам может понадобиться «время изменения инода» -, когда метаданные в последний раз менялись. Он обновляется, когда вы впервые создаете файл, а затем, когда вы выполняете такие действия, как chmod
(, которые в большинстве случаев вы не будете делать -, поэтому во многих случаях он остается исходным временем создания ). Это можно вывести с помощью stat -c %Z
.