sexta-feira, julho 28, 2006

Múltiplos usos do Comando Find

Quem nunca precisou editar algo em particular, em vários arquivos de uma só vez. O Nagios por exemplo, se for mudado o nome de um host no arquivos hosts.cfg, este nome deve ser mudado também no hostroups.cfg e no services.cfg. Ou então qer trocar uma váriavel em vários arquivos de um mesmo programa.


Para isto temos o comando find. A melhor utilização para mim descobri já fazem uns dois anos do site Dicas-L, do pessoal envolvido com a Unicamp.


O comando para isto é:



find ./ -maxdepth 1 -name '*.php' | xargs perl -i.bkp -p -e 's/isso/aquilo/ig;'


O isso você troca pela variável que você quer trocar, e o aquilo pelo valor a ser escrito. A opção -maxdepth 1 faz com que a substituição aconteca somente no diretório onde o comando foi executado. Se quiser que ele rode recursivamente, basta tirar esta parte do comando. Após o comando perl, a opção -i.bkp cria um backup de todo arquivo modificado.



Se você quiser mais explicações sobre este uso do find consulte no site do Dicas-L (find).



Outro uso excelente que podemos fazer é para achar aquivos “sem dono“.


find / -nouser -print


E se você quiser apagar estes arquivos pode usar o comando assim:


find / -nouser -print | xargs rm

Nenhum comentário: