Entrando em múltiplos diretórios no Unix e apagando um arquivo em particular

1

Eu tenho uma lista de diretórios que eu quero entrar e excluir arquivos específicos. Por exemplo, os nomes dos diretórios que tenho são os seguintes:

091513
090213
082612
071611
020908
011009
...
062308

Cada um desses diretórios possui 4 arquivos e os nomes dos arquivos são:

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

Eu quero escrever um script que vá para cada um desses diretórios e exclua:

dealer_score_01.txt
dealer_score_03.txt

Alguém por favor pode me ajudar com isso?

    
por user255223 18.09.2013 / 08:52

2 respostas

2

Você não precisa entrar em cada diretório separadamente. Basta passar os nomes dos arquivos que você deseja excluir para find e excluí-los com a opção -delete .

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

Deixe de fora -delete para ter certeza de excluir os arquivos corretos.

    
por 18.09.2013 / 09:15
0

Se você já tem uma lista dos diretórios (como seus comentários sugerem), você pode fazer isso com um loop. Se a lista de diretórios estiver, digamos, em dir_list e supondo que nenhum de seus diretórios contenha novas linhas em seus nomes:

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