Se você quiser redirecionar a saída do comando com -exec
, é melhor executar o comando shell; Experimente a seguinte sintaxe no seu caso:
find -name ".vimrc" -exec sh -c 'echo "set number" >> {}' \;
Isso funcionará como esperado.
Minha hierarquia de diretórios de trabalho original:
$ find
.
./usr1
./usr1/.vimrc
./usr2
./usr2/.vimrc
Eu quero adicionar uma linha - "set number" - a todos os arquivos .vimrc . Então eu corri este comando:
find -name ".vimrc" -exec echo "set number" >> {} \;
Mas, todos os arquivos .vimrc permanecem os mesmos, e há um novo arquivo {} no meu diretório de trabalho:
$ find
.
./usr1
./usr1/.vimrc
./{}
./usr2
./usr2/.vimrc
O que está errado? Como posso fazer isso corretamente?