Para editar os arquivos impressos por find
:
find . -name 'id.properties' -exec vi {} +
Em inglês simples, isso encontra caminhos no diretório atual ( .
) e em todos os subdiretórios com um nome base de id.properties
. Com esses arquivos, o executa o comando vi file1 file2 [...]
( -exec vi {} +
). Se houver muitos arquivos (geralmente milhares), ele poderá executar até mais de um comando vi
, cada um com vários arquivos, para poder encaixar os comandos no comprimento máximo de comando do sistema. Para forçá-lo a executar o comando para cada arquivo, você poderia usar \;
em vez de +
.
Para editar o texto impresso por find
:
find . -name 'id.properties' | vi -
Isso grava os caminhos (relativos ao diretório atual) de todos os arquivos encontrados (porque por padrão find
tem um -print
oculto no final) para sua saída padrão, que é < href="http://mywiki.wooledge.org/BashGuide/InputAndOutput#Pipes"> conectado ( |
) à entrada padrão de vi
. vi
, por sua vez, lê a entrada padrão ( -
) e mostra isso como um arquivo a ser editado.