удалить каталог, в котором есть один файл, но нет другого - PullRequest
1 голос
/ 10 апреля 2020

В bash, как удалить все каталоги, в которых есть файл с именем «1b912», но нет другого файла с именем «complete.touch»?

Чтобы удалить все каталоги, в которых нет "complete.touch", я использую:

find . -mindepth 1 -maxdepth 1 -type d '!' -exec test -e "{}/completed.touch" ';' -exec rm -r "{}" \;

Но я не уверен, как добавить второе условие

1 Ответ

4 голосов
/ 10 апреля 2020

Но я не уверен, как добавить второе условие

Просто добавьте еще один -exec для проверки, если в каталоге есть запись с именем 1b912.

find . -mindepth 1 -maxdepth 1 -type d \
   '!' -exec test -e '{}/completed.touch' ';' \
       -exec test -e '{}/1b912' ';' \
       -exec rm -r '{}' +
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...