Стратегии против поиска в поисках каталогов, удаленных `-exce rm` - PullRequest
2 голосов
/ 23 февраля 2020

ситуация

Для получения всех __pycache__ каталогов я использую это:

$ find . -type d -name __pycache__
./files/__pycache__
$

Для их удаления я использую -exec:

$ find . -type d -name __pycache__ -exec rm -fr {} \;
find: './files/__pycache__': No such file or directory
$

I получить этот странный `` Нет такого файла или каталога, но в любом случае удаление сделано:

$ find . -type d -name __pycache__
$

альтернатива xargs, опасность и лечение

Тем временем я использую xargs:

$ find . -type d -name __pycache__ | xargs rm -fr 

В соответствии с предложением @ jonathan-leffler -r (он же --no-run-if-empty) запрещает выполнение команды один раз, даже если из стандартного ввода не прочитаны имена, поэтому лучше

$ find . -type d -name __pycache__ | xargs -r rm -fr 

примечания:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...