Объяснение

Объяснение

Я забыл имя файла, который находится в каталоге или одном из его подкаталогов. Я помню расширение файла (.nb) и приблизительно знаю, когда он был создан. Как мне вывести список всех файлов с этим расширением в текущем каталоге и подкаталогах вместе с датами их создания? Я использую Mac OS X.

решение1

Самый простой способ сделать это —зш, который установлен по умолчанию в macOS. Егоквалификаторы globпозволяют выбирать и сортировать файлы по временной метке и другим метаданным. Zsh не поддерживает время создания, но поддерживает время модификации и время изменения inode; одно из них, вероятно, совпадает со временем создания.

Здесь перечислены 100 ( [1,100]) самых последних ( om) обычных ( .) файлов с .nbрасширением в текущем каталоге и его подкаталогах ( **/):

zsh -c 'ls -ltr **/*.nb(.om[1,100])'

Здесь перечислены файлы, измененные между 7 и 14 днями назад:

zsh -c 'ls -ltr **/*.nb(.m+6m-14)'

решение2

Это должно дать вам желаемое.

find . -type f -name '*.nb'|xargs stat -f '%c %N'|sort

Объяснение

find . -type f -name '*.nb'найти все файлы с расширением .nb.

xargs stat -f '%c %N'распечатайте файлы с меткой времени unix в начале.

sortотсортируйте его.

решение3

Для bash (не mac):

find . -type f -iname '*.nb'| xargs -d '\n' stat -c '%z %N'|sort

найти все записи типа «файл» в текущем каталоге и ниже, соответствующие шаблону

(-iname для игнорирования регистра)

передать его в xargs

(-d '\n' изменить разделитель на перевод строки, чтобы разрешить пробелы в именах файлов)

тогда к стати

(-c для выходного формата %z = последнее изменение статуса %N указанное имя файла)

и сортируем вывод

решение4

find -name '*.nb' -exec ls -rtl {} +

Покажет подробную информацию обо всех файлах, соответствующих шаблону, и отсортирует их от самых старых к самым новым (вы можете отсортировать их от самых новых к самым старым, удалив эту rопцию из lsкоманды).

Символ +«в конце» означает, что вы выполняете команду в конце поиска, а не запускаете ее для каждого совпадения.

ПРИМЕЧАНИЕ: это будет работать только с разумным количеством совпадений. Если командная строка слишком длинная, lsона будет разделена на несколько ls, что приведет к нескольким отсортированным подмножествам, в то время как весь список не будет отсортирован правильно (спасибо @Gilles и @rudimeier за указание на это).

Связанный контент