Como executar o comando na lista de nomes de arquivos em um arquivo?
11
Eu listei os nomes dos arquivos que devem ser excluídos em um arquivo. Como posso passar o arquivo para rmcomando para que ele seja excluído um por um.
A lista de arquivos é fornecida como entrada para o trcomando que altera o separador de arquivo de avanço de linha para o byte nulo e o xargscomando lê arquivos separados por bytes nulos na entrada e inicia o comando rm com os arquivos anexados como argumentos.
Eu também sugeriria usar em rm --vez de apenas rm, para que os nomes de arquivos que podem começar com traço não sejam tratados como rmparâmetros.
Artyom
Não funcionou amigo ........ tr: operando extra monu.txt' Try tr --help 'para mais informações. Operando rm: ausente Tente `rm --help 'para obter mais informações. ........ Isso é tudo o que eu posso ver #
2100
1
Talvez você tenha perdido o <antes do nome do arquivo?
Jonas Berlin
Também melhorei um pouco o comando xargs - acrescentou - de acordo com a sugestão do @artyom e adicionei -r para garantir que ele não execute o rm se não houver arquivos a serem removidos.
Jonas Berlin
5
A resposta acima é ótima, pois faz todo o possível para lidar com nomes de arquivos com espaços e "caracteres estranhos". Mas a maneira mais simples, se os nomes dos arquivos são sãos, é apenas (aviso, basismo!):
Respostas:
Se você tiver um arquivo por linha, uma maneira de fazer isso é:
A lista de arquivos é fornecida como entrada para o
tr
comando que altera o separador de arquivo de avanço de linha para o byte nulo e oxargs
comando lê arquivos separados por bytes nulos na entrada e inicia o comando rm com os arquivos anexados como argumentos.fonte
rm --
vez de apenasrm
, para que os nomes de arquivos que podem começar com traço não sejam tratados comorm
parâmetros.monu.txt' Try
tr --help 'para mais informações. Operando rm: ausente Tente `rm --help 'para obter mais informações. ........ Isso é tudo o que eu posso ver #A resposta acima é ótima, pois faz todo o possível para lidar com nomes de arquivos com espaços e "caracteres estranhos". Mas a maneira mais simples, se os nomes dos arquivos são sãos, é apenas (aviso, basismo!):
Para casca regular:
fonte