Como posso pesquisar listar apenas o diretório? [duplicado]

0

Como tudo que sabemos, podemos pesquisar um arquivo ou diretório no linux por:

find / -name theName

Mas lá mostra todos os arquivos e diretórios e permissão negada, como abaixo:

...
find: /Library/Caches/com.apple.iconservices.store: Permission denied
/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django
/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/forms/jinja2/django
/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/forms/templates/django
find: /Library/SystemMigration/History/Migration-389D835B-414A-4D8D-A683-7407624E87E8/QuarantineRoot/System/Library/DirectoryServices/DefaultLocalDB/Default: Permission denied
find: /private/etc/cups/certs: Permission denied
find: /private/var/agentx: Permission denied
...

Se eu quiser apenas mostrar os diretórios encontrados pelo comando, como fazer com ele?

    
por lustre 10.09.2017 / 16:03

1 resposta

4

Você deve usar

find / -type d -name theName

para localizar apenas os diretórios cujos nomes são theName . Sem -type d , você também testará o nome em relação a arquivos regulares, sockets, pipes nomeados, etc. que não sejam diretórios.

Isso ainda fornecerá os mesmos erros de "Permissão negada", pois você não tem permissões suficientes para inserir esses diretórios.

Para ignorar os erros, simplesmente adicione 2>/dev/null no final do comando. Isso redirecionará o fluxo de erros para /dev/null (eles serão descartados).

A raiz provavelmente tem acesso aos diretórios nos quais você não pode entrar, portanto, se você tiver sudo access, poderá tentar

sudo find / -type d -name theName

Isso executará o comando find como usuário root.

    
por 10.09.2017 / 16:07

Tags