Interactive remove arquivos listados com caminhos no arquivo de texto

1

Estou tentando remover arquivos interativamente relacionados com seus caminhos em um arquivo de texto.

O comando que estou tentando é:

xargs rm -i <filelist.txt

O erro que recebo é:

rm cannot remove 'directory1/directory2/filename.extension\r': No such file or directory.  

Eu suspeito que o \r que foi adicionado ao final do nome do arquivo seja uma indicação do que está errado, mas não tenho idéia do que isso possa significar.

Eu também tentei:

xargs -rd '\n' --arg-file=filelist.txt rm -i --

com o mesmo resultado exato.

Os arquivos estão listados em filelist.txt no formato: directory1/directory2/filename.extension onde directory1 está no diretório atual.

    
por Mike 31.03.2016 / 15:06

1 resposta

1

Sua lista de arquivos usa CRLF fins de linha, em vez do padrão LF , portanto, o \r na mensagem de erro. Experimente:

xargs -rd '\n' --arg-file=<(<filelist.txt tr -d '\r') rm -i --

(Supondo que seu shell tenha uma substituição de processo, por exemplo, ksh, bash ou zsh.)

    
por 31.03.2016 / 16:14