Существует ли способ проверить папки на Вашем Mac для недостающего объекта?
Скажите, что я хочу просканировать свой внешний жесткий диск и найти все папки с определенным словом в заголовке, которые пропускают файл Data.log
?
Каков был бы самый легкий способ пойти о выполнении этого, или это даже возможно?
Используя большой ответ от @Nifle, но включая Вашу попытку специфических особенностей:
% find /Volumes/WD -type d -name *[TEST]* | while read a; do if [ ! -f $a/Data.log ]; then echo $a; fi; done
Разрушение этой остроты:
find /Volumes/WD -type d -name *[TEST]*
: Обходит дерево файла от /Volumes/WD
в Ваш внешний поиск HD каталогов (-type d
) которые имеют [TEST]
где-нибудь на их имя (-name *[TEST]*
).
Вывод от find
команда передается по каналу ( |
) в bash
while
цикл, который вытаскивает соответствие каталогам, по одному хранящим их в переменной a
.
В цикле:
if
оператор проверяет что файл Data.log
не находится в каталоге, который рассматривают. В if
оператор, $a
расширен так, чтобы $a/Data.log
путь как /Volumes/WD/<dir1>/<dir2>/Data.log
. Для получения теста, Вы интересуетесь !
и -f
используются так, чтобы только случаи, где файл с тем именем не существует, оценили к TRUE
(!
NOT
, и -f
указывает на файл, а не любой другой тип записи файловой системы как каталоги или ссылки).echo $a
где $a
заменяется как выше именем каталога, переданным по каналу в от find
.Я знаю, что перехеширую предыдущий ответ, но я надеюсь, что это разрешает то, что продолжается в большой остроте, выдвинутой @Nifle, и решило Вашу проблему.