1

Предполагая следующую структуру файла:

/Parent1/
/Parent1/SubA/
/Parent1/SubB/
  ...
/Parent2/
/Parent2/SubA/
/Parent2/SubB/
  ...

какую команду я могу использовать для рекурсивного удаления SubB из каждого родительского каталога? То, что я делал, это длинная рука (очень хромая, но я включу ее просто, чтобы было ясно, что я пытаюсь сделать):

rm -rf Parent1/SubB
^1^2^
...

2 ответа2

2

Вы можете добиться этого, используя команды find и xargs . Допустим, Parent1 и Parent2 хранятся в каталоге с именем SuperParent . Вы могли бы сделать что-то вроде:

find /SuperParent -name SubB -type d -print0 | xargs -0 rm -rf

Это передает список каталогов с именем SubB, найденных ниже /SuperParent, в команду xargs , которая принимает каждый каталог и запускает rm с каталогом в качестве аргумента.

1

Если ParentX не так много:

rm -rf Parent*/SubB

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