В моей папке Download у меня есть много файлов. Мне нужен сначала способ расположить их типом, которым вторые файлы с тем же расположением типа становятся типом, который я добавил (или может сказать загруженный или рождение (если я не ошибаюсь)), их к моей папке Downloads. смотрите, вводят описание ссылки здесь В моем каталоге Downloads, у меня есть PDF, zip и и т.д. когда я перехожу к своему каталогу Downloads Сначала, я хочу видеть, что мои tar.gz вокруг вместе (расположение типом) вторые, мне нужны мои tar.gz файлы, имеют вид времени, когда я добавил к этому каталогу. Например, я ищу пятое самое молодое время рождения tar.gz файл.
Мой предыдущий ответ был, начался с этого неправильного оператора:
Linux не хранит время создания файла
Да - ядро Linux не обеспечивает API для получения меток времени создания от файловой системы.
, Но как это записано в , wiki ext4 обеспечивает метки времени создания файла:
ext4 также добавляет поддержку созданных из даты меток времени. Но, как Theodore Ts'o указывает, в то время как легко добавить дополнительное поле даты создания в inode (таким образом технически разрешающий поддержку созданных из даты меток времени в ext4), более трудно изменить или добавить необходимые системные вызовы, как статистика () (который, вероятно, потребовал бы новой версии), и различные библиотеки, которые зависят от них (как glibc).
Также , как отвечено в <час> unix.stackexchange
Several file systems store the file creation time,
although there is no standard name for this field:
- ufs2 → st_birthtime
- zfs → crtime
- ext4 → crtime
- btrfs → otime
- jfs → di_otime
Вот большой вопрос/ответ , как найти штамп создания файла. Сценарий записан @terdon:
get_crtime() {
for target in "${@}"; do
inode=$(ls -di "${target}" | cut -d ' ' -f 1)
fs=$(df --output=source "${target}" | tail -1)
crtime=$(sudo debugfs -R 'stat <'"${inode}"'>' "${fs}" 2>/dev/null |
grep -oP 'crtime.*--\s*\K.*')
printf "%s\t%s\n" "${target}" "${crtime}"
done
}
Добавляют этот сценарий к Вашему .bashrc.
Теперь использование этого сценария можно получить то, что Вы хотите.
Переходят к папке, какое содержание Вы хотите отсортировать
$ cd ~/Downloads
$ get_crtime * | sed -r 's/\s+/ /g' | cut -d" " -f1,3,4,6 | sort -k2M -k3,4n
Для tar.gz
файлы
$ get_crtime *.tar.gz | sed -r 's/\s+/ /g' | cut -d" " -f1,3,4,6 | sort -k2M -k3,4n
<час> Источники