Comando Linux / SSH para excluir todos os caminhos de arquivos encontrados no arquivo

4

Eu tenho um arquivo cheio de caminhos de arquivos em relação ao seu próprio caminho:

./Talent/152/Resume/a file name.pdf
./Talent/153/Resume/some file name.pdf
./Talent/154/Resume/yet another file name.pdf
... and so on ...

Qual seria o comando shell apropriado para passar por cada linha neste arquivo e removê-lo?

    
por Paolo Bergantino 06.06.2010 / 02:32

3 respostas

5
xargs -d '\n' rm < listoffiles.txt
    
por 06.06.2010 / 02:46
1
xargs -I{} --arg-file=file rm "{}"

ou

xargs -I{} -a file rm "{}"

As citações protegem nomes de arquivos com espaços.

    
por 06.06.2010 / 02:53
1

Se você está em um shell Bash, você pode fazer:

find ./Talent/*/Resume/* -exec rm {} \;

ou se você quiser excluir os arquivos com mais de 7 dias, você pode adicionar o parâmetro -mtime assim:

find ./Talent/*/Resume/* -mtime +7 -exec rm {} \;
    
por 06.06.2010 / 08:27

Tags