Se você alterar seu shell para zsh, precisará de find
com muito menos frequência, pois o zsh permite que você faça a maior parte do que o find
pode fazer através da globulação. Para começar, **/
tem um significado especial: **/foo
expande para arquivos chamados foo
no diretório atual e seus subdiretórios recursivamente, ou seja, ele corresponde aos mesmos arquivos que find . -name foo
. Então você pode editar todos os jogos com
vi **/*.properties
Desde o bash 4.0, se você colocar shopt -s globstar
no seu ~/.bashrc
, **/
se comportará da mesma maneira.
Em zsh, você tem muito mais possibilidades graças aos qualificadores glob (descritos muito próximo do final do zshexpn
página man ). O princípio é restringir as partidas adicionando um ou mais qualificadores entre parênteses após a partida. Por exemplo, o qualificador .
se restringe a arquivos regulares, enquanto /
se restringe a diretórios. O qualificador [1]
retém apenas a primeira correspondência; [1,4]
retém as primeiras quatro correspondências; e assim por diante. Por exemplo, para editar o primeiro (na ordem lexicográfica do caminho completo), o arquivo regular corresponde a *.properties
:
vi **/*.properties(.[1])
Se você preferir editar o arquivo de correspondência modificado mais recentemente, use o om
qualifier para classificar as correspondências por horários de modificação (em ordem de aumento de idade):
vi **/*.properties(.om[1])