sed
modifica o conteúdo de um arquivo. Use rename
em seu lugar.
$ find . -name "*.ext" -print0 | xargs -0 rename 's/\[firstname\.lastname\]//g'
Passe o sinal rename
the -n
para fazer uma execução a seco. Dessa forma, você pode testar seu comando sem realmente renomear nenhum arquivo.
Também fiz algumas outras alterações no código.
-
Adicionar
-print0
afind
e-0
axargs
permite que o comando manipule espaços. Por padrão,find
usa novas linhas para separar os nomes de arquivos gerados exargs
espera receber nomes de arquivos separados por espaço em branco.-print0
e-0
fazem esses dois comandos tratarem os bytes nulos como delimitadores de nome de arquivo. Veja esta questão para mais informações . -
rename
usa expressões regulares Perl , que tratam.
,[
e]
especialmente. Eles devem ser escapados neste caso.