Comando find / grep sem procurar compartilhamentos montados


34

Quando usei o comando find, quase sempre preciso pesquisar as unidades locais. Mas, quase sempre tenho compartilhamentos de rede super grandes montados e esses são incluídos na pesquisa. Existe uma maneira fácil de excluir aqueles no comando find, grep e outros comandos semelhantes? Exemplo:

encontre / -name .vimrc

Respostas:


46

Use a -fstype localopção para encontrar:

find / -fstype local -name .vimrc

Se você deseja excluir apenas caminhos específicos, você pode usar -prune:

find / -name /path/to/ignore -prune -o -name .vimrc

Atualizar:

O localpsuedo-fstype está disponível na versão do find que acompanha o OS X, mas não está no find do GNU ( fstypes reconhecido pelo find do GNU ).

Se você estiver usando o GNU find (como é usado na maioria dos sistemas Linux), você prefere usar -mount:

find / -mount -name .vimrc

isso funciona para grep também?
Flotsam N. Jetsam

1
Eu não acho que o grep tenha essa opção. Eu normalmente usava findpipe grepcomo mostrado nesta resposta: superuser.com/questions/80033/… . Ultimamente, eu tenho usado ack( betterthangrep.com ), mas acknão parece ter uma opção para pesquisar apenas unidades locais.
Doug Harris

Minha edição foi rejeitada, apenas fazendo um comentário. Basicamente, o primeiro exemplo está errado, porque você precisa adicioná -prune-lo ou ele ainda atravessará os sistemas de arquivos indesejados. O segundo exemplo que acredito ter sido feito em -pathvez de -nameignorar o caminho. FWIW ... o último exemplo funciona, ele permanece no "sistema de arquivos atual" e não atravessa outros.
rogerdpack 16/04


0

A pergunta original era encontrar apenas no disco local; portanto, por uma questão de integridade, eis o que eu usei;

for PART in `awk '(!/^#/ && $6 != "0" || $3 == "xfs" ) { print $2 }' /etc/fstab 2>/dev/null`; do find $PART -xdev -name .vimrc -print 2>/dev/null; done

Desde que o seu fstab esteja configurado corretamente, ele deve procurar apenas os discos locais; ou seja, as montagens CIFS devem ter esse sinalizador final definido como 0. Eu incluí o OR para sistemas de arquivos xfs quando começamos a ir para o RHEL7, eles devem ser configurados para 0 também, pois eles não devem reorganizar o disco após tantas reinicializações.

Espero que ajude.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.