Linux 시스템에서 폴더를 찾을 수 없습니까? 괜찮아요! Linux는 누락 된 디렉토리를 찾을 수있는 강력한 명령 줄 도구를 제공합니다. 가장 일반적인 도구는 find
명령으로 다양한 기준에 따라 디렉토리를 검색 할 수 있습니다. 이 안내서는 Linux 시스템에서 디렉토리를 찾는 몇 가지 방법을 소개합니다.
먼저, 우리는 디렉토리를 이름으로 검색하는 방법을 보여줄 것입니다. 그런 다음 가장 최근에 수정 된 디렉토리와 지난 N 일에 수정 된 디렉토리를 찾는 방법을 보여줄 것입니다. 또한 오래된 디렉토리를 식별하는 방법을 배웁니다.
다음으로 maxdepth
및 mindepth
옵션을 사용하여 지정된 깊이 범위 내에서 디렉토리를 검색하는 방법을 설명합니다. 특정 파일 수가 포함 된 디렉토리 및 디렉토리에 대한 권한을 기반으로 디렉토리를 찾는 방법을 배웁니다.
마지막으로, 빈 디렉토리를 검색하는 방법을 설명합니다. 이는 파일 시스템의 사용하지 않거나 불필요한 부분을 식별하는 데 매우 유용합니다.
가이드 전체에 걸쳐 Linux에서 디렉토리를 사용할 때 find
명령을 활용하는 데 도움이되는 실제 예제를 제공합니다.
목차
디렉토리의 이름을 알고 검색이 시작되는 경우 다음 명령을 사용하십시오.
/path/to/search -type d -name "directory_name"찾기
실제 경로로 /path/to/search
대상 "directory_name"
로 대체하십시오.
예:
$ 찾기 ~/ -type d -name "documents"
이 명령은 사용자의 홈 디렉토리 (~/)에서 "문서"라는 디렉토리를 검색하기 시작합니다.
다음은 명령의 고장입니다.
find ~/
: 사용자의 홈 디렉토리 (~/)에서 검색을 시작하십시오.-type d
: 일반 파일 대신 디렉토리 (-type d)를 검색하도록 find
십시오.-name "Documents"
:이 옵션은 find
"Documents"라는 디렉토리를 찾도록 지시합니다. "문서"의 양쪽에 따옴표는 검색에서 "문서"라는 단어가 포함 된 디렉토리뿐만 아니라 정확한 이름을 찾도록합니다.따라서이 명령은 사용자의 홈 디렉토리와 "문서"라는 디렉토리에 대해 모든 하위 디렉터를 검색합니다. 디렉토리가 발견되면 해당 디렉토리의 전체 경로를 인쇄합니다.
홈 디렉토리 (~/) 대신 현재 디렉토리에서 검색을 시작하려면 다음과 같이 명령의 ~/ 부분을 생략 할 수 있습니다.
$ 찾기. -Type D -Name "Documents"
다음은 각 옵션에 대한 기능의 분석입니다.
find .
: .
현재 디렉토리를 나타냅니다.-type d
: 디렉토리를 검색하도록 find
위해 찾으십시오.-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 문서 "
다음은 다음과 같습니다.
find
명령은 "문서"(Case Insensitive)라는 이름의 모든 프로젝트 (파일 및 디렉토리)에 대해 현재 디렉토리 (.) 및 모든 하위 디렉토리를 검색합니다.따라서이 명령의 출력에는 다음이 포함됩니다.
-type d
섹션을 삭제하면 지정된 이름 패턴과 일치하는 디렉토리 및 파일이 포함되므로 검색이 더 넓어집니다.
귀하가 찾고있는 "문서"항목이 디렉토리 또는 파일인지 확실하지 않은 경우 유용하며 모든 상황을 찾고자합니다.
그러나 "문서"라는 디렉토리를 구체적으로 찾는 경우 검색을 좁히기 위해 -type d
옵션을 유지하는 것이 좋습니다.
특정 날짜 범위 내에서 수정 된 디렉토리를 나열하려면 -newermt
두 번 사용하십시오.
예를 들어, 2024 년 3 월 15 일과 2024 년 4 월 15 일 (이 이틀 제외) 사이에 생성되거나 수정 된 디렉토리를 검색하려면 다음을 사용할 수 있습니다.
$/path/to/search-type d-newermt "2024-03-15"!
위의 명령의 분류는 다음과 같습니다.
find /path/to/search
: /path/to/search
디렉토리에서 검색을 시작하도록 find
명령을 알려줍니다.-type d
:이 옵션은 find
명령이 일반 파일이 아닌 디렉토리 만 검색하도록합니다.-newermt "2024-03-15"
:이 옵션은 2024 년 3 월 15 일보다 업데이트 (생성 또는 수정) 된 디렉토리 만 포함하도록 find
.! -newermt "2024-04-15"
find
!
이러한 옵션의 조합으로 인해 find
디렉토리가 2024 년 3 월 15 일 이후 또는 2024 년 4 월 15 일 이전에 생성 또는 수정됩니다.
예를 들어, 특정 기간 (예 : 백업 또는 감사의 경우)에 생성되거나 수정 된 모든 디렉토리를 찾으려면 유용 할 수 있습니다.
지난 N 일에 수정 된 디렉토리를 찾으려면 -mtime
사용하십시오.
다음 명령은 지난 7 일 동안 ~/ project/ directory에서 수정 된 디렉토리를 검색합니다.
$ ~/ projects/ -type d -mtime -7을 찾습니다
명령의 각 부분은 다음과 같습니다.
find ~/Projects/
: ~/ 프로젝트/ 디렉토리에서 검색을 시작하도록 find
명령을 알려줍니다.-type d
:이 옵션은 find
명령이 일반 파일이 아닌 디렉토리 만 검색하도록합니다.-mtime -7
:이 옵션은 지난 7 일 동안 수정 된 디렉토리 만 포함하도록 find
( "m"in -mtime "은"수정 시간 "을 의미합니다). -mtime -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'{} \;
다음은 위 명령에 대한 설명입니다.
find ~/Projects/ -type d -mtime 7
:이 명령 부분은 이전과 동일합니다. 7 일 전에 디렉토리를 찾으십시오.-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
명령의 maxdepth
및 mindepth
옵션을 사용하여 지정된 깊이 범위 내에서 디렉토리를 검색 할 수 있습니다.
다음은 구문입니다.
/path/to/search -mindepth x -maxdepth y -type d
이 명령의 각 옵션이 무엇을하는지 설명하겠습니다.
find /path/to/search
: /path/to/search
디렉토리에서 검색을 시작하도록 find
명령을 알려줍니다.-mindepth X
:이 옵션은 검색 결과에 포함하도록 디렉토리의 최소 깊이 수준을 설정합니다. 값 x는 시작점에서 시작하는 최소 디렉토리 수준을 나타냅니다.-maxdepth Y
:이 옵션은 검색 결과에 포함하도록 디렉토리의 최대 깊이 수준을 설정합니다. 값 y는 시작점에서 시작하는 최대 디렉토리 수준 수를 나타냅니다.-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 층 딥 디렉토리 만 포함됩니다.
maxdepth
및 mindepth
조합하면 파일 시스템을 구성하고 관리하는 데 매우 유용한 특정 범위의 디렉토리 깊이로 검색을 좁힐 수 있습니다.
디렉토리의 권한을 기반으로 한 디렉토리를 찾으려면 -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 개의 파일이 포함 된 디렉토리를 찾고 있으며 해당 디렉토리의 전체 경로를 인쇄합니다.
$.
명령을 단계별로 분류합시다.
find . -type d
: 현재 디렉토리 (.)에서 디렉토리 (파일 아님) 검색을 시작하십시오.exec
find
-exec bash -c '...' _ {} \;
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
, mindepth
및 size
와 같은 옵션을 사용하는 방법을 배우면 검색을 개선하여 필요한 특정 디렉토리에 집중할 수 있습니다.
따라서 다음에 폴더가 손실 될 때 당황하지 마십시오! 이 find
명령을 사용하여 추적하고 파일을 정리하십시오.
위 내용은 명령 줄에서 Linux에서 디렉토리를 찾는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!