업데이트:11/30/2020 컴퓨터에 의해 희망

리눅스 운영 체제 find 명령을 사용할 수 있습을 검색하는 파일과 디렉터리에서 귀하의 컴퓨터입니다. 진행하려면 다음 목록에서 링크를 선택하거나 순서대로 각 섹션을 살펴보십시오.

참고

find 를 사용하려면 터미널 세션을 열어 명령 줄에 액세스하십시오.

find 의 기본 기능

옵션없이 find 를 실행하면 작업 디렉토리 안팎의 모든 파일과 디렉토리 목록이 생성됩니다., 예를 들어 작업 디렉토리가/home/hope/Documents 인 경우 find 를 실행하면 다음이 출력됩니다.

  • /home/hope/Documents 의 모든 파일.
  • /home/hope/Documents 의 모든 하위 디렉토리.
  • 각 하위 디렉토리의 모든 파일.

행동에서 보자., 먼저 확인하자,우리의 작업 디렉터리를 사용하여 pwd 명령:

pwd
/home/hope/Documents

이제 실행을 찾을 수 없는 옵션:

find

이 예제에서,우리가 보는 총 파일을 열고 네 하위 디렉터리 바로 아래와 우리의 문서 폴더에 있습니다.

출력이 작업 디렉토리를 나타내는 단일 점으로 시작한다는 것을 알 수 있습니다., 실행하는 찾을 수 없는 옵션과 같은 지정하는 검색을 시작해야 하에서 작업 디렉터리은 다음과 같습니다.

find .

위의 예에는”적당한”사용하는 방법을 찾을 수 있습니다. FreeBSD 와 같은 다른 Unix 와 같은 운영 체제에서 사용하려고하면 디렉토리를 지정하는 것이 필요합니다. 이 형태의 명령을 사용하는 것이 좋은 방법입니다.,

지정하는 어디서 검색

을 유일한 목록은 파일과 하위 디렉토리에서 포함되는 디렉터리/home/소망/Documents/이미지를 지정하는 첫 번째 인수의 명령:

find /home/hope/Documents/images

주는 전체 경로가 표시됩니다.,

경우 우리의 작업 디렉터리/홈/희망 문서,우리가 사용할 수 있는 다음 명령을 발견 같은 파일:

find ./images

그러나 이번에 출력을 반영하의 시작 위치를 검색 및 다음과 같습니다:

기본적으로 검색에 보이는 모든 하위디렉토리의 시작 위치에 있습니다. 검색할 하위 디렉토리의 레벨 수를 제한하려는 경우-maxdepth 옵션을 숫자와 함께 사용할 수 있습니다.

예를 들어,지정-maxdepth1 검색만이 디렉토리에서 검색을 시작합니다., 하위 디렉토리가 발견되면 나열되지만 검색되지는 않습니다.,

find . -maxdepth 1
../images./bigfiles.txt./gimp-2.8.16.tar.bz2./hp-fanfic./archlinux-2016.02.01-dual.iso

지정-maxdepth2 색 디렉토리와 하위 디렉토리 깊은 곳:

find . -maxdepth 2

지정-maxdepth3 검색을 하는 수준 이상의 것이 있:

find . -maxdepth 3

을 찾는 이름

제한 검색 결과치만 파일 및 디렉토리가 있는 특정 이름을 사용하여 이름의 옵션을 넣어에서 이름을 따옴표:

find . -name "picard.jpg"
./images/memes/picard.jpg

와일드카드도 사용할 수 있습의 일환으로 당신의 파일 이름입니다., 예를 들어 이름이 끝나는 모든 파일을 찾으려면.별표를 사용하여 나머지 파일 이름을 나타낼 수 있습니다. 명령을 실행하는 경우,셸을 것입니다 glob 파일 이름으로 아무것도 일치하는 패턴

find . -name "*.jpg"
./images/hp/snape.jpg./images/hp/harry.jpg./images/memes/winteriscoming.jpg./images/memes/picard.jpg

는 주님의 명령이 없는 목록은 파일의 확장자(이 경우,JPG)입니다. Microsoft Windows 와 같은 다른 운영 체제와 달리 Linux 파일 이름은 대소 문자를 구분하기 때문입니다.,”>

하는 디렉토리 목록만을 생략할 파일의 이름을 지정 유형 d:

find . -type d
../images./images/hp./images/memes./hp-fanfic

발견에 따라 파일 크기

예를 들어,파일을 찾는”더 큰 것보다 50kb”사용즈+50k:

find . -size +50k
./images/memes/winteriscoming.jpg./gimp-2.8.16.tar.bz2./archlinux-2016.02.01-dual.iso

파일에 대한”보다 더 큰 10 메가바이트”사용 크기+10:

find . -size +10M
./gimp-2.8.16.tar.bz2./archlinux-2016.02.01-dual.iso

“에 대한 보다 더 큰 1 기가바이트”사용즈+1G:

find . -size +1G
./archlinux-2016.02.01-dual.iso

파일에 대한 특정 크기의 범위를 사용하여 두 가지 크기 옵션이 있습니다., 예를 들어,파일을 찾는”보다 더 큰 10 메가바이트,하지만 보다 작은 1 기가바이트 지정,”크기+10-size-1G:

find . -size +10M -size -1G
./gimp-2.8.16.tar.bz2

발견을 기준으로 파일을 수정 액세스,또는 상태 변경

-mtime 옵션을 제한 검색에 의해 얼마나 많은 일 때문에 파일의 내용이 수정되었습니다. 과거의 일을 지정하려면 음수를 사용하십시오., 예를 들어,만 찾으려면 그 파일을 수정에서 지난 일(48 시간 전),사용 mtime-2:

find . -mtime -2

-mmin 옵션은 같은 일이지만,약관의 분,지 않은 일입니다. 예를 들어,이 명령을 사용하면 파일만 변경이 과거에 반 시간:

find . -mmin -30

비슷한 옵션을-ctime 확인하는 파일의 상태를 마지막으로 변경되었을 때,측정에서의 일입니다. 상태 변경은 파일의 메타 데이터 변경입니다. 예를 들어 파일의 사용 권한을 변경하는 것은 상태 변경입니다.,

옵션-cmin 은 분 단위로 측정 된 상태 변경을 검색합니다.

파일이 마지막으로 액세스되었을 때,즉 그 내용이 가장 최근에 볼 때 검색 할 수도 있습니다. -Atime 옵션은 일 단위로 측정 된 가장 최근의 액세스 시간을 기반으로 파일을 검색하는 데 사용됩니다.

-amin 옵션은 동일한 검색 제한을 수행하지만 분 단위로 측정됩니다.

리다이렉션 텍스트 파일로 출력을

를 수행하는 경우가 매우 큰 검색할 수 있습 검색 결과를 저장하는 파일에,그래서 그 결과를 확인할 수 있습니다., 당신이 할 수 있으로 리디렉션을 찾을 출력하는 파일:

find . -iname "*.jpg" > images.txt

할 수 있습니다 다음을 열어 결과를 텍스트 편집기에서,또는 인쇄와 함께 그들을 고양이 명령입니다.

cat images.txt

할 수 있습니다,또는 파이프의 출력을 티 명령하는 인쇄 출력하여 화면 쓰 file:

find . -size +500M | tee bigfiles.txt
./archlinux-2016.02.01-dual.iso
cat bigfiles.txt
./archlinux-2016.02.01-dual.iso

억제 오류 메시지

당신은 오류 메시지가 나타날 수 있습니다”사용 권한”검색을 수행할 때., 예를 들어,만약 당신이 검색하고 루트 디렉토리로 정상적인 사용자

find /

를 받는 경우에는 오류 메시지를 찾을에 액세스하려는 파일에 사용자 계정의 권한이 없습니다. 시스템의 모든 파일에 대한 완전한 액세스 권한을 가진 수퍼 유저(루트)로 검색을 수행 할 수 있습니다. 그러나 다른 옵션이없는 한 루트로 일을하는 것은 권장하지 않습니다.,

경우에 당신이해야 할 모든 당신이 숨기는”사용 권한”메시지를 추가할 수 있습 2&>1|grep-v”사용 권한”의 끝에 당신의 명령은 다음과 같습니다.

find / 2>&1 | grep -v "Permission denied"

위의 예는 필터링”사용 권한”메시지를 검색합니다. 어떻게?

2>&1 특별한 리디렉션을 보내는 오류 메시지를 표준출력 파이프에 결합된 라인을 출력하는 그 명령입니다., 그런 다음 grep-v 는”Permission denied”에서 역 일치를 수행하여 해당 문자열을 포함하지 않는 줄만 표시합니다.

리다이렉션과 grep 을 사용하여 필터의 오류 메시지 유용한 기술할 때”사용 권한”는 어지럽히 검색 결과할 수 없습 검색으로 루트입니다.

예제

find ~/. -name "*.txt" -amin -120

홈 디렉토리에있는 모든 파일을 찾아 확장자로 끝나는 아래”.txt”. 지난 두 시간 동안 액세스 한 파일 만 표시합니다.,

find . -name "*.zip" -size +10M -mtime -3

작업 디렉토리와 그 이름에 확장자가있는 아래의 모든 파일 찾기”.우편 번호”와 그 크기가 10 메가 바이트보다 큽니다. 지난 72 시간 동안 내용이 수정 된 파일 만 표시합니다.

find . -iname "*report*" -type f -maxdepth 2

를 수행하는 대소문자를 구분하는 파일의 검색 단어를 포함하”보고서”그들의 이름입니다. 검색에서 이름에”보고서”가있는 디렉토리가 발견되면 표시하지 마십시오. 작업 디렉토리에서만 검색하고 그 아래에 하나의 디렉토리 수준.,

find / -name "*init*" 2>&1 | grep -v "Permission denied" | tee ~/initfiles.txt

이름에”init”이 포함 된 시스템의 모든 파일을 찾아 오류 메시지를 억제합니다. 화면에 결과를 표시하고”initfiles 라는 홈 디렉토리의 파일로 출력하십시오.txt”.