1

У меня есть список каталогов, в которые я хочу зайти и удалить определенные файлы. Например, имена каталогов у меня такие, как показано ниже:

091513
090213
082612
071611
020908
011009
...
062308

В каждом из этих каталогов есть 4 файла, а имена файлов:

dealer_score_01.txt
dealer_score_02.txt
dealer_score_03.txt
dealer_score_04.txt

Я хочу написать скрипт, который вошел бы в каждый из этих каталогов и удалил:

dealer_score_01.txt
dealer_score_03.txt

Может кто-нибудь помочь мне с этим?

2 ответа2

2

Вам не нужно заходить в каждый каталог отдельно. Просто передайте имена файлов, которые вы хотите удалить, чтобы find и удалить их с помощью опции -delete .

find . -type f \
\( -name 'dealer_score_01.txt' -or -name 'dealer_score_03.txt' \) -delete

Оставьте -delete чтобы убедиться, что вы удаляете нужные файлы.

0

Если у вас уже есть список каталогов (как подсказывают ваши комментарии), вы можете сделать это с помощью цикла. Если список каталогов находится, скажем, в dir_list и предполагается, что ни один из ваших каталогов не содержит новых строк в своем имени:

while read -r dir; do
  rm -f "$dir"/dealer_score_0{1,3}.txt
done < dir_list

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