디렉토리만 검색하는 방법은 무엇입니까? [복사]

디렉토리만 검색하는 방법은 무엇입니까? [복사]

우리 모두 알고 있듯이 Linux에서는 다음과 같은 방법으로 파일이나 디렉터리를 검색할 수 있습니다.

find / -name theName

그러나 아래와 같이 모든 파일과 디렉터리가 표시되고 권한이 거부되었습니다.

...
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
...

명령으로 찾은 디렉토리만 표시하려면 어떻게 해야 합니까?

답변1

당신은 사용해야합니다

find / -type d -name theName

이름이 지정된 디렉토리만 찾습니다 theName. 그렇지 않은 경우 -type d디렉터리가 아닌 일반 파일, 소켓, 명명된 파이프 등에 대해 이름을 테스트할 수도 있습니다.

해당 디렉터리에 들어갈 수 있는 충분한 권한이 없기 때문에 여전히 동일한 "권한 거부" 오류가 발생합니다.

오류를 무시하려면 2>/dev/null명령 끝에 추가하면 됩니다. 그러면 오류 스트림이 다음으로 리디렉션됩니다 /dev/null(삭제됨).

루트는 사용자가 액세스할 수 없는 디렉토리에 액세스할 수 있으므로 액세스 권한이 있으면 sudo시도해 볼 수 있습니다.

sudo find / -type d -name theName

그러면 find루트 사용자로 명령이 실행됩니다.

관련 정보