Як знайти папки Mac, для яких відсутній конкретний файл


0

Чи є спосіб перевірити папки на вашому Mac для відсутнього елемента?

Скажімо, я хочу сканувати мій зовнішній жорсткий диск і знайти всі папки з певним словом у назві, у яких відсутній файл Data.log?

Що було б найпростішим способом зробити це, чи це можливо?

Відповіді:


3

Використовуючи чудову відповідь від @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.

  • У межах циклу:

    • The if оператор перевіряє, що файл Data.log не знаходиться в розглянутому каталозі. В if заява, $a розширюється так, що $a/Data.log є шлях, як /Volumes/WD/<dir1>/<dir2>/Data.log. Щоб отримати тест, який вас цікавить ! і -f використовуються, так що тільки випадки, коли файл з такою назвою не існує, оцінюються до TRUE ( ! є NOT, і -f позначає файл, а не будь-який інший тип запису файлової системи, наприклад, каталоги або посилання).
    • Нарешті, якщо знайти відповідний каталог, він друкується echo $a де $a замінюється, як зазначено вище, на назву каталогу, до якої вводиться з find.

Я знаю, що я повторюю попередню відповідь, але я сподіваюся, що це розкриє те, що відбувається у великому лайнері, висунутому @Nifle, і вирішує вашу проблему.


1

Це повинно зробити трюк, запустити його в оболонці.

find /Volumes/WD/ -type d -name '*TEST*' | while read a; do if [ ! -f $a/Data.log ]; then echo $a; fi; done;

Якщо ви не бажаєте точно збігатися з певним_словом, можливо, потрібно certain_word "
Neil

Трохи попрацював. Це не тягне інформаційне право або щось. Я хочу перевірити всі папки, на яких на шляху - & gt; & gt; / Volumes / WD /, і я хочу, щоб він показував всі папки, які відсутні в Data.log?
Homework

Я розумію, що це заплутано.
Homework

@Joey - спробуйте зараз. Якщо ні, що ви отримуєте за помилки або результат?
Nifle

Добре, це працює краще, але це перерахування все? haha, це не прослуховування папок, у яких відсутній файл.
Homework
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.