Допустим, в моей папке ~/list
есть большое количество папок, каждая из которых имеет свои собственные подпапки, подпапки и т. Д., И на каждом уровне есть много файлов. Однако некоторые из этих файлов и папок пусты, так как я могу рекурсивно искать их все, чтобы найти пустые файлы и папки? И затем отобразить их в списке местоположений файлов, чтобы я знал, где находится каждый из них (также должно быть ясно, какой файл является папкой, а какой - папкой, поскольку не все файлы имеют расширения файлов). Я использую Ubuntu GNOME 15.10 с GNOME 3.18.
Обратите внимание, что было бы также очень полезно, если бы мне также сообщалось, если файл выглядит пустым, но его нет (например, если в нем есть пробелы или переносы строк или что-то в этом роде). И будет делать различие между реальным пустым файлом и файлом, который выглядит пустым в выводе.
Ответы:
Из
man find
Поэтому для поиска как пустых файлов, так и каталогов достаточно сделать
Чтобы указать тип, вы можете использовать
%y
спецификатор выходного форматанапример
или использовать внешнюю программу, например
ls
, которая включает в себя--classify
опциют.е.
Если ваше определение «пустого» расширено, чтобы включить в него файлы, содержащие только пробельные символы, то оно становится более сложным - и более сложным в вычислительном отношении, поскольку теперь вам нужно фактически открыть по крайней мере любые непустые файлы и проверить их содержимое. Самый эффективный способ, который я могу придумать, - это что-то вроде
(либо пустой, либо файл И grep не обнаруживает хотя бы один непустой символ). Вероятно, есть лучший способ, хотя.
источник
Из
~/list
папки:для перечисления пустых каталогов и
для распечатки пустых файлов.
для отображения пустых папок и файлов, включая пробелы и пустые строки
источник
[ `grep -c [[:alnum:]] "{}"` -eq 0 ]
пропустит файлы, содержащие только символы, не входящие в[A-Za-z0-9]
набор.