comando find / grep sem pesquisar compartilhamentos montados

23

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

find / -name .vimrc

    
por Flotsam N. Jetsam 05.01.2011 / 16:27

3 respostas

33

Use a opção -fstype local para encontrar:

find / -fstype local -name .vimrc

Se você quiser excluir somente caminhos específicos, use -prune :

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

Atualização:

O local psuedo-fstype está disponível na versão do find que vem com o OS X, mas não está no GNU find (fstypes reconhecidos pelo GNU find ).

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

find / -mount -name .vimrc
    
por 05.01.2011 / 16:32
7

man find mostra:

-xdev Don't descend directories on other filesystems.

    
por 10.10.2017 / 20:12
0

A pergunta original era encontrar apenas no disco local, portanto, por questão de integridade, aqui está 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

Contanto que seu fstab esteja configurado corretamente, ele deve procurar apenas os discos locais; Isto é, montagens cifs devem ter o sinalizador final configurado como 0. Incluí o OR para sistemas de arquivos xfs quando começamos a ir para RHEL7, eles devem ser configurados para 0 também porque não são feitos para fazer o disco reorganizar depois de tantas reinicializações.

Espero que ajude.

    
por 23.03.2018 / 16:47

Tags