Подтвердить что ты не робот

Как я могу перечислить все файлы в каталоге и подкаталогах в обратном хронологическом порядке?

Я хочу сделать что-то вроде ls -t, но также иметь файлы в подкаталогах. Но проблема в том, что я не хочу, чтобы выход, сформированный как ls -R, выполнялся следующим образом:

[test]$ ls -Rt
b       testdir test

./testdir:
a

Я хочу, чтобы он был отформатирован, как команда find отображает файлы в подкаталогах. То есть:

[test]$ find .
.
./b
./test
./testdir
./testdir/a

Но то, что find, похоже, не делает, - это упорядочить результат хронологически по времени последнего обновления.

Итак, как я могу перечислить все файлы в каталоге и подкаталогах в формате find, но в обратном хронологическом порядке?

4b9b3361

Ответ 1

Попробуйте следующее:

find . -type f -printf "%[email protected] %p\n" | sort -nr | cut -d\  -f2-

Ответ 2

ls -lR - отображать все файлы, каталоги и подкаталоги в домашнем каталоге ls -lR | more используется для отображения всех файлов в потоке.

Ответ 3

Если количество файлов, которые вы хотите просмотреть, соответствует максимальному пределу аргумента, вы можете использовать globbing для получения того, что хотите, с рекурсией, если у вас есть поддержка globstar.

Для ровного использования двух слоев: ls -d * */*

С globstar для рекурсии используйте: ls -d **/*

Аргумент -d для ls указывает, что он не перезаписывает каталоги, переданные как аргументы (так как вы используете переполнение оболочки для выполнения рекурсии). Это предотвращает ls, используя его форматирование рекурсии.

Ответ 4

find -type f -print0 | xargs -0 ls -t

Недостаток: работает только с определенным количеством файлов. Если у вас есть огромное количество файлов, вам нужно что-то более сложное

Ответ 5

Try find . -type d или find . -type d -ls

Ответ 6

попробуйте следующее:

ls -ltraR |egrep -v '\.$|\.\.|\.:|\.\/|total' |sed '/^$/d'

Ответ 7

Команда wfg5475 answer работает правильно, просто нужно добавить одну вещь, чтобы показывать только файлы в каталоге и подкаталоге:

ls -ltraR |egrep -v '\.$|\.\.|\.:|\.\/|total|^d' |sed '/^$/d'

Добавлена ​​одна вещь: ^d игнорировать все каталоги из выводов листинга