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
-print0afinde-0axargspermite que o comando manipule espaços. Por padrão,findusa novas linhas para separar os nomes de arquivos gerados exargsespera receber nomes de arquivos separados por espaço em branco.-print0e-0fazem esses dois comandos tratarem os bytes nulos como delimitadores de nome de arquivo. Veja esta questão para mais informações . -
renameusa expressões regulares Perl , que tratam.,[e]especialmente. Eles devem ser escapados neste caso.