Как я могу удалить все каталоги run-*.achilles во всех моих подкаталогах под Linux?

Я попытался find /path -name run-*.achilles -type f -delete но это не работает.

1 ответ1

2

Несколько вопросов здесь:

  1. Вы должны цитировать * чтобы не допустить повреждения оболочки.
  2. -type f говорит, find вы хотите найти файлы.
  3. find -delete не удаляет непустые каталоги. Смотрите этот вопрос. Скорректированное решение одного из ответов там:

    find /path -path '*/run-*.achilles/*' -delete
    find /path -type d -name 'run-*.achilles' -empty -delete
    

Это не идеально, первая строка будет соответствовать .../run-a/b.achilles/... Я думаю. Эта команда должна соответствовать лучше:

find /path -type d -name 'run-*.achilles' -exec rm -rf {} +

Он использует rm -rf , поэтому будьте осторожны с ним.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .