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

13

Я хочу перечислить все скрытые файлы и каталоги, а затем сохранить результат в файл.

Есть ли команда для этого?

Лукаш
источник

Ответы:

13

Если вы используете GNU find, вы можете сделать

find /path -path '*/.*' -ls | tee output-file

редактировать

Чтобы не показывать не скрытые элементы, содержащиеся в скрытых каталогах

find /path -name '.*' >output-file

(как отмечено, teeможно было бы избежать, если вам не нужно видеть выходные данные, и -lsопция должна использоваться только при необходимости).

enzotib
источник
2
Или >вместо | tee, если вы не хотите видеть весь вывод на терминале.
rozcietrzewiacz
Вы также не нуждаетесь -lsв этом, это может быть дополнительная беспорядочная информация для анализа мысли.
Калеб
Это также перечисляет содержимое скрытых каталогов, что не то, о чем спрашивает вопрос (возможно - это немного двусмысленно).
Жиль "ТАК - перестань быть злым"
@ Жиль: действительно, это неоднозначно. Отредактировано ответ
enzotib
Обратите внимание, что первый не специфичен для GNU. -pathэто POSIX с 2008 года. -lsне является стандартным, но довольно распространенным.
Стефан Шазелас
10

Для просмотра списка скрытых файлов и каталогов в текущем каталоге, включая .и ..:

echo .*

Чтобы вывести список скрытых файлов и каталогов в текущем каталоге и его подкаталогах рекурсивно:

find . -name '.*'

Если вы хотите сохранить результаты в файл, используйте перенаправление:

find . -name '.*' >output-file.txt
Жиль "ТАК - прекрати быть злым"
источник
1

С zsh(используя спецификатор glob D ):

print -rl ./**/.*(D)

Чтобы включить не скрытые файлы в скрытые каталоги:

setopt extendedglob
print -rl ./**/*~^*/.*(D)
don_crissti
источник
0

Фактически вы можете поместить один и тот же аргумент несколько раз в одну и ту же командную строку:

find /storage/????-????/ -iname '.*' -iname "*" | tee -a file-list-micSD-20190801163729.fli

Команда tee -aможет отображать вывод команды (или стандартный вывод ) одновременно при записи его в файл. Эти -aпараметры предотвращают залипание и вместо этого добавляют информацию в целевой выходной файл.

/storage/????-????/это пример пути. Это путь к карте MicroSD в новых мобильных телефонах Android (есть также терминальное приложение для Android, с меньшим количеством команд, но все еще много и значительно увеличенное по сравнению с Android 6.0). Карта MicroSD была раньше /storage/extSdCard. Теперь это серийный номер тома.

neverMind9
источник