Como excluir as pastas proc e sys da pesquisa com o comando find?

8

Eu queria executar um script que selecionasse um caminho de diretório aleatório:

find / -type d | shuf -n1 

Infelizmente recebo mensagens de erro sobre a proibição de entrar em determinados diretórios.

Como posso excluir um diretório da pesquisa com o find?

    
por Abdul Al Hazred 30.03.2015 / 01:13

2 respostas

12

Para excluir caminhos específicos, no Linux:

find / -path /sys -prune -o -path /proc -prune -o -type d

Outra abordagem é informar find para não recorrer a diferentes sistemas de arquivos.

find / -xdev -type d

Você também pode usar localizar para consultar um banco de dados de nomes de arquivos (geralmente atualizado todas as noites) em vez do sistema vivo.

locate '*' | shuf -n 1
    
por 30.03.2015 / 01:24
4

com o GNU, você também pode usar opções de regex, e. g. assim:

find / -regextype posix-extended -regex "/(sys|srv|proc)" -prune -o -type d
    
por 14.12.2015 / 18:53