> 시스템 튜토리얼 > 리눅스 > 명령 줄에서 Linux에서 디렉토리를 찾는 방법

명령 줄에서 Linux에서 디렉토리를 찾는 방법

Lisa Kudrow
풀어 주다: 2025-03-18 09:07:11
원래의
925명이 탐색했습니다.

명령 줄에서 Linux에서 디렉토리를 찾는 방법

Linux 시스템에서 폴더를 찾을 수 없습니까? 괜찮아요! Linux는 누락 된 디렉토리를 찾을 수있는 강력한 명령 줄 도구를 제공합니다. 가장 일반적인 도구는 find 명령으로 다양한 기준에 따라 디렉토리를 검색 할 수 있습니다. 이 안내서는 Linux 시스템에서 디렉토리를 찾는 몇 가지 방법을 소개합니다.

먼저, 우리는 디렉토리를 이름으로 검색하는 방법을 보여줄 것입니다. 그런 다음 가장 최근에 수정 된 디렉토리와 지난 N 일에 수정 된 디렉토리를 찾는 방법을 보여줄 것입니다. 또한 오래된 디렉토리를 식별하는 방법을 배웁니다.

다음으로 maxdepthmindepth 옵션을 사용하여 지정된 깊이 범위 내에서 디렉토리를 검색하는 방법을 설명합니다. 특정 파일 수가 포함 된 디렉토리 및 디렉토리에 대한 권한을 기반으로 디렉토리를 찾는 방법을 배웁니다.

마지막으로, 빈 디렉토리를 검색하는 방법을 설명합니다. 이는 파일 시스템의 사용하지 않거나 불필요한 부분을 식별하는 데 매우 유용합니다.

가이드 전체에 걸쳐 Linux에서 디렉토리를 사용할 때 find 명령을 활용하는 데 도움이되는 실제 예제를 제공합니다.

목차

  • 현재 디렉토리에서 디렉토리를 검색하십시오
  • 인증을 사용하여 사례를 무시하십시오
  • 검색 디렉토리 및 파일
  • 최근에 수정 된 디렉토리를 찾으십시오
  • 지난 N 일에 디렉토리가 수정되었습니다
  • 오래된 디렉토리를 식별하십시오
  • 지정된 범위 내에서 디렉토리를 검색하십시오
  • 디렉토리 권한을 기반으로 디렉토리를 찾으십시오
  • 특정 수의 파일이 포함 된 디렉토리를 찾으십시오
  • 빈 디렉토리를 검색하십시오
  • 요약

디렉토리 이름으로 검색하십시오

디렉토리의 이름을 알고 검색이 시작되는 경우 다음 명령을 사용하십시오.

 /path/to/search -type d -name "directory_name"찾기
로그인 후 복사

실제 경로로 /path/to/search 대상 "directory_name" 로 대체하십시오.

예:

 $ 찾기 ~/ -type d -name "documents"
로그인 후 복사

이 명령은 사용자의 홈 디렉토리 (~/)에서 "문서"라는 디렉토리를 검색하기 시작합니다.

다음은 명령의 고장입니다.

  1. find ~/ : 사용자의 홈 디렉토리 (~/)에서 검색을 시작하십시오.
  2. -type d : 일반 파일 대신 디렉토리 (-type d)를 검색하도록 find 십시오.
  3. -name "Documents" :이 옵션은 find "Documents"라는 디렉토리를 찾도록 지시합니다. "문서"의 양쪽에 따옴표는 검색에서 "문서"라는 단어가 포함 된 디렉토리뿐만 아니라 정확한 이름을 찾도록합니다.

따라서이 명령은 사용자의 홈 디렉토리와 "문서"라는 디렉토리에 대해 모든 하위 디렉터를 검색합니다. 디렉토리가 발견되면 해당 디렉토리의 전체 경로를 인쇄합니다.

현재 디렉토리에서 디렉토리를 검색하십시오

홈 디렉토리 (~/) 대신 현재 디렉토리에서 검색을 시작하려면 다음과 같이 명령의 ~/ 부분을 생략 할 수 있습니다.

 $ 찾기. -Type D -Name "Documents"
로그인 후 복사

다음은 각 옵션에 대한 기능의 분석입니다.

  1. find . : . 현재 디렉토리를 나타냅니다.
  2. -type d : 디렉토리를 검색하도록 find 위해 찾으십시오.
  3. -name "Documents" :이 옵션은 find "Documents"라는 디렉토리를 찾도록 지시합니다.

이 명령은 현재 디렉토리와 모든 하위 디렉토리를 검색하고 "문서"라는 디렉토리를 찾고 해당 디렉토리에 대한 전체 경로를 인쇄합니다.

또는 다음과 같이 현재 작업 디렉토리를 나타내는 $PWD 변수를 사용할 수도 있습니다.

 $ pwd -type d -name "documents"찾기
로그인 후 복사

두 명령 모두 현재 디렉토리부터 동일한 결과를 달성합니다.

인증을 사용하여 사례를 무시하십시오

이것은 find 명령에서 매우 유용한 깃발입니다.

-name 대신 -iname 옵션을 사용하여 Case Insensensive 검색을 수행 할 수 있습니다.

다음은 -iname 대신 -name 을 사용하는 예입니다.

 $ 찾기. -Type D -iname "Documents"
로그인 후 복사

-iname "Documents" 옵션의 이름은 디렉토리와 "문서", "문서", "문서"등과 같은 이름과 디렉토리와 일치합니다. 디렉토리 이름의 정확한 경우에 대해 잘 모르면 유용합니다.

-name-iname 의 주요 차이점은 다음과 같습니다.

  • -name 대소 문자에 민감한 검색을 수행하므로 제공된 패턴과 정확히 동일한 디렉토리 만 일치합니다.
  • -iname 대소 문자를 사용하지 않는 검색을 수행하므로 사례에 관계없이 디렉토리와 일치합니다.

다음과 같은 와일드 카드에 검색어를 포함시킬 수도 있습니다.

 $ 찾기. -Type D -iname "*Documents*"
로그인 후 복사

이 명령에는 이름에 "문서"가 포함 된 현재 디렉토리 (및 하위 디렉토리)의 모든 디렉토리가 나와 있습니다.

원하는 디렉토리 이름의 정확한 사례를 모르거나 신경 쓰지 않으면 -iname 사용하는 것이 더 편리 할 수 ​​있습니다.

개인적으로 무언가를 검색 할 때 find 명령에서 -iname 옵션을 사용하는 것이 좋습니다.

검색 디렉토리 및 파일

find 명령에서 -type d 부분을 제거하면 -name 또는 -iname 옵션과 같은 다른 기준과 일치하는 파일 및 디렉토리를 검색합니다.

명령은 다음과 같습니다.

 $ find. -iname 문서 "
로그인 후 복사

다음은 다음과 같습니다.

  1. find 명령은 "문서"(Case Insensitive)라는 이름의 모든 프로젝트 (파일 및 디렉토리)에 대해 현재 디렉토리 (.) 및 모든 하위 디렉토리를 검색합니다.
  2. 여기에는 "문서"라는 디렉토리와 결과에 "문서"라는 일반 파일이 포함됩니다.

따라서이 명령의 출력에는 다음이 포함됩니다.

  • "문서", "문서", "문서"등이라는 모든 디렉토리 .
  • "documents", "documents", "documents"등이라는 일반적인 파일 .

-type d 섹션을 삭제하면 지정된 이름 패턴과 일치하는 디렉토리 및 파일이 포함되므로 검색이 더 넓어집니다.

귀하가 찾고있는 "문서"항목이 디렉토리 또는 파일인지 확실하지 않은 경우 유용하며 모든 상황을 찾고자합니다.

그러나 "문서"라는 디렉토리를 구체적으로 찾는 경우 검색을 좁히기 위해 -type d 옵션을 유지하는 것이 좋습니다.

최근에 수정 된 디렉토리를 찾으십시오

특정 날짜 범위 내에서 수정 된 디렉토리를 나열하려면 -newermt 두 번 사용하십시오.

예를 들어, 2024 년 3 월 15 일과 2024 년 4 월 15 일 (이 이틀 제외) 사이에 생성되거나 수정 된 디렉토리를 검색하려면 다음을 사용할 수 있습니다.

 $/path/to/search-type d-newermt "2024-03-15"!
로그인 후 복사

위의 명령의 분류는 다음과 같습니다.

  1. find /path/to/search : /path/to/search 디렉토리에서 검색을 시작하도록 find 명령을 알려줍니다.
  2. -type d :이 옵션은 find 명령이 일반 파일이 아닌 디렉토리 만 검색하도록합니다.
  3. -newermt "2024-03-15" :이 옵션은 2024 년 3 월 15 일보다 업데이트 (생성 또는 수정) 된 디렉토리 만 포함하도록 find .
  4. ! -newermt "2024-04-15" find !

이러한 옵션의 조합으로 인해 find 디렉토리가 2024 년 3 월 15 일 이후 또는 2024 년 4 월 15 일 이전에 생성 또는 수정됩니다.

예를 들어, 특정 기간 (예 : 백업 또는 감사의 경우)에 생성되거나 수정 된 모든 디렉토리를 찾으려면 유용 할 수 있습니다.

지난 N 일에 디렉토리가 수정되었습니다

지난 N 일에 수정 된 디렉토리를 찾으려면 -mtime 사용하십시오.

다음 명령은 지난 7 일 동안 ~/ project/ directory에서 수정 된 디렉토리를 검색합니다.

 $ ~/ projects/ -type d -mtime -7을 찾습니다
로그인 후 복사

명령의 각 부분은 다음과 같습니다.

  1. find ~/Projects/ : ~/ 프로젝트/ 디렉토리에서 검색을 시작하도록 find 명령을 알려줍니다.
  2. -type d :이 옵션은 find 명령이 일반 파일이 아닌 디렉토리 만 검색하도록합니다.
  3. -mtime -7 :이 옵션은 지난 7 일 동안 수정 된 디렉토리 만 포함하도록 find ( "m"in -mtime "은"수정 시간 "을 의미합니다).

-mtime -7 부분의 작동 원리는 다음과 같습니다.

  • 마이너스 부호 (-)는 "과거"또는 "과거"를 의미합니다.
  • 숫자 7은 일의 수를 나타냅니다.

예를 들어, ~/ 프로젝트/ 디렉토리 (백업 또는 추적 용)에서 최근에 생성되거나 업데이트 된 모든 새 디렉토리를 찾으려면 매우 유용합니다.

오래된 디렉토리를 식별하십시오

n 며칠 전에 수정 된 디렉토리를 찾으려면 (즉, (날 전의 디렉토리 찾기) 플러스 부호와 함께 -mtime 사용하십시오.

예를 들어, 다음 명령은 7 일 전에 ~/ 프로젝트/ 디렉토리에서 수정 된 디렉토리를 검색합니다.

 $ ~/ projects/ -type d -mtime 7을 찾습니다
로그인 후 복사

다시 말해, 지난 7 일 동안 수정 (생성, 업데이트 또는 액세스)되지 않은 디렉토리를 찾습니다.

-mtime 7 옵션은 찾기 시간 ( "m"in "-mtime")이 7 일 전에 더 큰 디렉토리 만 포함하도록 find .

따라서이 명령은 일정 기간 동안 터치되거나 수정되지 않은 디렉토리를 찾는 데 사용될 수 있으며, 이는 사용하지 않거나 구식 디렉토리를 식별하거나 프로젝트 디렉토리 구조의 유지 관리/청소와 같은 작업을 수행하는 데 도움이됩니다.

디렉토리가 실제로 X 일 전에 수정되었는지 어떻게 알 수 있습니까? 매우 간단합니다.

7 일 전에 find 명령에서 발견 된 디렉토리가 수정되었는지 확인하려면 stat 명령을 사용하여 각 디렉토리의 수정 시간을 표시 할 수 있습니다.

 $ 찾기 ~/ projects/ -type d -mtime 7 -exec stat -c ' %n %y'{} \;
로그인 후 복사

다음은 위 명령에 대한 설명입니다.

  1. find ~/Projects/ -type d -mtime 7 :이 명령 부분은 이전과 동일합니다. 7 일 전에 디렉토리를 찾으십시오.
  2. -exec stat -exec stat find -exec stat -c '%n %y' {} \;
  • stat -c '%n %y' : stat 명령은 디렉토리의 파일 이름 (%n)과 마지막 수정 시간 (%y)을 표시합니다.
  • {} : 이것은 자리 표시 자이며 find 에서 발견 한 현재 디렉토리로 대체됩니다.
  • \; 이것은 -exec 명령을 종료합니다.

이 명령을 실행하면 7 일 전에 각 디렉토리의 경로와 마지막 수정 시간이 표시됩니다. 이를 통해 발견 된 디렉토리가 실제로 7 일 전에 수정되었는지 확인할 수 있습니다.

출력 예는 다음과 같습니다.

 <code>/home/ostechnix/Projects/Python 2024-03-22 14:18:14.958042173 0530 /home/ostechnix/Projects/Vim 2024-03-22 14:05:55.887041168 0530</code>
로그인 후 복사

출력에 표시된 수정 시간은 원본 find 명령에 따라 디렉토리가 실제로 7 일 이상 길이인지 확인하는 데 도움이됩니다.

지정된 범위 내에서 디렉토리를 검색하십시오

find 명령의 maxdepthmindepth 옵션을 사용하여 지정된 깊이 범위 내에서 디렉토리를 검색 할 수 있습니다.

다음은 구문입니다.

 /path/to/search -mindepth x -maxdepth y -type d
로그인 후 복사

이 명령의 각 옵션이 무엇을하는지 설명하겠습니다.

  1. find /path/to/search : /path/to/search 디렉토리에서 검색을 시작하도록 find 명령을 알려줍니다.
  2. -mindepth X :이 옵션은 검색 결과에 포함하도록 디렉토리의 최소 깊이 수준을 설정합니다. 값 x는 시작점에서 시작하는 최소 디렉토리 수준을 나타냅니다.
  3. -maxdepth Y :이 옵션은 검색 결과에 포함하도록 디렉토리의 최대 깊이 수준을 설정합니다. 값 y는 시작점에서 시작하는 최대 디렉토리 수준 수를 나타냅니다.
  4. -type d :이 옵션은 find 명령이 일반 파일이 아닌 디렉토리 만 검색하도록합니다.

-mindepth 옵션은 -type 포함한 다른 매개 변수 앞에 지정해야합니다.

예를 들어, /Projects 디렉토리의 깊이 깊은 깊이의 최소 2 개의 레이어이지만 최대 4 개의 레이어를 검색하려면 다음 명령을 사용할 수 있습니다.

 $ 찾기 ~/프로젝트 -Mindepth 2 -maxdepth 4 -Type d
로그인 후 복사

이 명령은 /Projects 디렉토리에 비해 최소 2 개의 층 깊이와 최대 4 개의 레이어를 검색합니다.

특정 요구에 따라 x와 y의 값을 조정할 수 있습니다. 예를 들어, 정확히 3 개의 레이어 깊이 인 디렉토리를 검색하려면 다음을 사용할 수 있습니다.

 $ 찾기 ~/프로젝트 -Mindepth 3 -maxdepth 3 -type d
로그인 후 복사

여기에는 검색 결과에 3 층 딥 디렉토리 만 포함됩니다.

maxdepthmindepth 조합하면 파일 시스템을 구성하고 관리하는 데 매우 유용한 특정 범위의 디렉토리 깊이로 검색을 좁힐 수 있습니다.

디렉토리 권한을 기반으로 디렉토리를 찾으십시오

디렉토리의 권한을 기반으로 한 디렉토리를 찾으려면 -perm 옵션과 함께 find 명령을 사용할 수 있습니다.

 /path/to/search -type d -perm 찾기<permission_specification></permission_specification>
로그인 후 복사

검색을 시작하려는 디렉토리로 /path/to/search 대체하고<permission_specification></permission_specification> 필요한 권한으로 교체하십시오. Octal 표기법을 사용하여 권한을 지정할 수 있습니다.

몇 가지 예를 보여 드리겠습니다.

현재 디렉토리에서 권한이있는 모든 디렉토리를 찾으려면 (즉, 소유자는 RWX, 그룹은 RX) :

 $ 찾기. -typ d -perm 755
로그인 후 복사

소유자에게 RWX 권한이있는 디렉토리를 찾으려면 그룹에 RX 권한이 있으며 다른 사람들은 권한이 없습니다.

 $ 찾기. -typ d -perm 750
로그인 후 복사

소유자가 권한이 있고 그룹이있는 ~/프로젝트의 모든 디렉토리를 찾으려면 RX 권한이 있습니다.

 $ ~/projects ~ -type d -perm -005를 찾습니다
로그인 후 복사

특정 요구 사항에 따라 조정할 수 있습니다<permission_specification></permission_specification> . 또한 -maxdepth-mindepth 옵션을 사용하여 필요한 경우 검색 깊이를 제어 할 수 있습니다.

특정 수의 파일이 포함 된 디렉토리를 찾으십시오

특정 수의 파일이 포함 된 디렉토리를 찾으려면 find , wc 및 Bash 명령을 조합하여 사용할 수 있습니다.

예:

다음 명령은 현재 디렉토리 및 해당 하위 디렉토리에 4 개의 파일이 포함 된 디렉토리를 찾고 있으며 해당 디렉토리의 전체 경로를 인쇄합니다.

 $.
로그인 후 복사

명령을 단계별로 분류합시다.

  1. find . -type d : 현재 디렉토리 (.)에서 디렉토리 (파일 아님) 검색을 시작하십시오.
  2. -exec bash exec find -exec bash -c '...' _ {} \;
  3. if [ $(find "$1" -maxdepth 1 -type f | wc -l) -eq 4 ]; then echo "$1"; fi
  • $(find "$1" -maxdepth 1 -type f | wc -l) :이 섹션에서는 현재 디렉토리 ( "$ 1")의 파일 수 (디렉토리가 아님)를 계산합니다. -maxdepth 1 옵션은 하위 디렉토리의 파일이 아닌 현재 디렉토리의 파일 만 계산하도록합니다.
  • [ ... -eq 4 ] : 현재 디렉토리의 파일 수가 정확히 4인지 확인합니다.
  • then echo "$1"; fi : 조건이 참이면 (디렉토리에 4 개의 파일이 있습니다) 디렉토리의 전체 경로를 인쇄하십시오.

예를 들어, 특정 수의 파일을 포함 해야하는 특정 디렉토리 세트가 있고 해당 기준을 충족하지 않는 디렉토리를 신속하게 식별하려는 경우 유용합니다.

빈 디렉토리를 검색하십시오

빈 디렉토리를 찾으려면 -empty 플래그를 사용하십시오.

 /path/to/search -type d -empty 찾기
로그인 후 복사

예를 들어, "작업"디렉토리에서 빈 디렉토리를 검색하려면 실행하십시오.

 $ 찾기 ~/ work/ -type d -empty
로그인 후 복사

필요에 따라 경로를 조정해야합니다.

요약

이 안내서에서는 find 명령을 사용하여 Linux 시스템에서 디렉토리를 검색하는 몇 가지 기술을 배웠습니다.

이름, 마지막 변경 시간 또는 내부 파일 수로 검색 할 수 있습니다. 특정 권한이있는 빈 폴더 나 폴더를 찾을 수도 있습니다.

maxdepth , mindepthsize 와 같은 옵션을 사용하는 방법을 배우면 검색을 개선하여 필요한 특정 디렉토리에 집중할 수 있습니다.

따라서 다음에 폴더가 손실 될 때 당황하지 마십시오! 이 find 명령을 사용하여 추적하고 파일을 정리하십시오.

위 내용은 명령 줄에서 Linux에서 디렉토리를 찾는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿