예제가 있는 Linux FIND 명령

Linux 를 새로 설치하면 몇 개의 파일이 있는지 아십니까 ? PopOS를 사용한다면! 예를 들어 Linux 배포판(Linux distribution) 에는 31,000개가 넘는 파일이 있습니다. 문서 작성, 음악 저장, PDF(PDFs) 다운로드 또는 사진 정리를 시작하기 전입니다.

이 때문에 필요할 때 Linux 에서 올바른 파일이나 폴더를 찾는 것이 어렵습니다. 이 기사에서는 Linux FIND(Linux FIND) 명령 을 사용하는 방법을 배우고 가능한 모든 예제를 제공할 것입니다.

Linux FIND 명령 구문(Linux FIND Command Syntax)

구문은 단어 또는 명령이 조합되는 방식을 나타냅니다. 단어를 섞기 만(Just) 하면 정상적인 문장이 무의미해질 수 있는 것처럼 명령이 올바른 구문으로 사용되지 않으면 명령이 실패할 수 있습니다.

[경로] [조건] [동작] 찾기(find [path] [conditions] [actions])

이것이 의미하는 바는 다음과 같습니다.

findLinux 에서 (Linux)찾기(Find) 유틸리티를 시작합니다.

경로(path ) - 볼 곳

조건(conditions ) – 검색에 적용할 인수

action(actions ) – 결과로 무엇을 하고 싶은지

세 가지를 모두 사용하는 간단한 예는 다음과 같습니다.

찾기 . -이름 파일-sample.rtf -인쇄(find . -name file-sample.rtf -print)

예상대로 file-sample.rtf 파일 이름을 찾습니다 . 

마침표( . ) 경로는 find에게 현재 디렉토리와 그 안의 모든 디렉토리를 찾도록 지시합니다. 

-name 조건은 특정 이름을 가진 파일을 가져오도록 find 에 지시합니다.

-print 작업은 화면에 결과를 표시하도록 FIND에 지시합니다 .

마침표 및 -print는 찾기 명령의 기본값입니다. 따라서 사용하지 않는 경우에도 동일한 작업을 수행합니다. 따라서 find -name file-sample.rtf 는 동일한 결과를 제공합니다.

다른 디렉토리에서 Linux 찾기(Linux FIND In Another Directory)

현재 있는 디렉토리와 다른 디렉토리에서 검색할 수 있습니다. FIND 다음에 디렉토리 경로를 삽입하기 (Just) 하면 됩니다. 루트에 있고 파일이 home/user 디렉토리 어딘가에 있다는 것을 알고 있다면 다음을 사용합니다.

find home/user -name file-sample.rtf

여전히 재귀 검색이므로 user 아래의 모든 디렉토리를 통과합니다 .

Linux 찾기 여러 디렉토리 검색(Linux FIND Search Multiple Directories)

한 번에 여러 디렉토리를 검색하려면 공백으로 구분하여 명령에 나열하면 됩니다.

find /lib /var /bin -name file-sample.rtf

재귀가 없거나 재귀를 제한하는 Linux FIND(Linux FIND with No Recursion or Limiting Recursion)

루트 수준에서 위 의 FIND 명령 을 사용한 경우 시스템의 모든 디렉토리를 검색합니다. 따라서 현재 디렉토리만 유지하려면 -maxdepth 옵션을 사용하십시오. -maxdepth 뒤의 숫자는 Find가 중지하기 전에 얼마나 깊이 가야 하는지 알려줍니다. 

-maxdepth 1 을 사용하면 이 디렉토리만 의미합니다. 

-이름 파일-sample.rtf -maxdepth 1 찾기(find -name file-sample.rtf -maxdepth 1)

-maxdepth 2 이상의 숫자를 사용하면 그만큼 더 깊은 수준으로 이동한다는 의미입니다.

-maxdepth 5 -이름 파일-sample.rtf 찾기(find -maxdepth 5 -name file-sample.rtf)

Linux FIND 와일드카드 예(Linux FIND Wildcard Example)

FIND 명령 은 별표( * )를 와일드카드로 사용합니다. 확실하지 않은 이름 부분에 사용하십시오. 이름에 두 번 이상 사용할 수 있습니다. 파일 이름의 일부로 파일 유형이 없으면 결과에는 일치하는 디렉토리도 포함됩니다.

find home/user -name file*sample*

Linux 유형별 찾기 예(Linux FIND by Type Example)

파일이나 디렉토리만 검색하려면 -type 옵션과 적절한 설명자를 사용하십시오. 몇 가지가 있지만 파일과 디렉토리가 가장 일반적입니다.

f – 파일

d – 디렉토리

b – 블록 장치

c – 문자 장치

l - 심볼릭 링크

s – 소켓

find home/user -name file*sample* -type d

Linux FIND 대소문자를 구분하지 않는 예(Linux FIND Case Insensitive Example)

Windows 와 달리 Linux 는 문자가 대문자인지 소문자인지에 대해 관심을 갖습니다. 따라서 File-Sample.rtf(File-Sample.rtf) 와 file-sample.rtf 를 모두 검색 하도록 하려면 -iname 옵션을 사용하십시오.

find home/user -iname File-Sample.rtf

Linux에서 여러 파일 찾기 예(Linux FIND Several Files Example)

파일의 .rtf 및 .html 버전을 찾고 싶다고 가정해 보겠습니다. -o (또는) 연산자 를 사용하여 하나의 명령으로 수행할 수 있습니다 . 일부 배포판에서는 ( -name file-sample.rtf -o -name file-sample.html )(( -name file-sample.rtf -o -name file-sample.html )) 과 같이 대괄호 안에 이름을 넣어야 할 수도 있습니다 . 

find home/user -name file-sample.rtf -o -name file-sample.html

이름과 일치하지 않는 Linux 파일 찾기(Linux FIND Files That Don’t Match a Name)

파일의 .html(.html) 버전이 있다는 것을 알고 있을 수 있지만 다른 파일이 있는 경우에는 그렇지 않습니다. -not 옵션 을 사용하여 검색 에서 .html 버전을 필터링할 수 있습니다 .

find home/user -name file-sample* -not -name *.html

오류 없이 Linux 찾기 결과(Linux FIND Without Error Results)

재귀가 없는 찾기 예제에서 검색할 수 없는 모든 디렉토리와 올바른 결과가 나열되었음을 알 수 있습니다. 그거 짜증나네. 모든 " Permission denied" 디렉토리를 표시하지 않도록 합시다. 다른 Linux 터미널 명령(Linux terminal command) 인 grep과 결합합니다. grep과 함께 찾기(Find) 를 사용 하여 특정 단어가 포함된 파일을 찾을 수도 있습니다(find files with specific words in them) .

find -maxdepth 5 -name file-sample.rtf 2>&1 | grep -v “Permission denied”

2>&1 을 분해해 봅시다 .

2 – 표준 오류 출력의 약어인  stderr 을 나타냅니다.(stderr )

1 – 표준 출력의 약자인 stdout 을 나타냅니다.(stdout)

> – 출력의 왼쪽에 있는 출력을 오른쪽에 있는 출력으로 리디렉션하는 것을 의미합니다.

& – 는 함께 묶는 것을 의미합니다.

따라서 2>&1 은 표준 오류를 가져와 리디렉션한 다음 표준 출력과 함께 하나의 출력으로 만드는 것을 의미합니다.

이제 살펴보자 | grep -v “Permission denied” .

| (파이프라고 함) – 왼쪽에 있는 결과를 오른쪽에 있는 모든 항목에 제공하도록 Linux 에 지시합니다. (Linux)grep 명령에 공급되고 있습니다.

grep - 텍스트 검색 유틸리티입니다. 

-v – grep이 -v 왼쪽에 있는 텍스트와 일치하지 않는 모든 항목을 검색하도록 지시합니다. 이 경우 grep에 " Permission(Permission) denied "라는 텍스트나 문자열이 포함되지 않은 항목만 찾도록 지시합니다 . 따라서 grep은 찾고 있는 결과와 "사용 권한(Permission) 이 거부됨 "과 일치하지 않는 오류만 표시합니다.

Linux 권한으로 찾기 예제(Linux FIND by Permissions Example)

이것을 잘 사용하려면 리눅스 권한을 배워야(learn Linux permissions) 합니다. 

예제 파일에는 권한 775가 있는 파일을 제외하고 모두 권한 664가 있습니다. -perm 옵션을 사용하여 찾습니다.

find Documents/ -name file-sample* -type f -perm 775

Linux 크기별 찾기 예(Linux FIND by Size Example)

크기별로 파일을 찾는 것은 하드 드라이브를 채우는 거대한 파일을 얻는 데 편리합니다. -size 옵션, 원하는 크기 및 다음 접미사 중 하나를 사용하십시오. 접미사를 사용하지 않으면 -size 기본값은 b 입니다. 특정 크기 이상의 파일을 찾으려면 크기 앞에 더하기 기호(+)를 붙입니다.

M – 메가바이트

G – 기가바이트

k – 킬로바이트

b – 블록(512바이트 – 기본값)

c – 바이트

w – 단어(2바이트 함께)

find -size +500k

소유자별 Linux 찾기(Linux FIND by Owner)

소유자별로 파일을 찾는 두 가지 방법이 있습니다. 하나는 소유자의 사용자 이름이고 다른 하나는 사용자 그룹입니다. 사용자 이름으로 찾으려면 -user 옵션을 사용하고 사용자 이름을 사용하십시오. 사용자 그룹으로 찾으려면 -group 다음에 그룹 이름을 사용하십시오..

-user groupname(find -user groupname ) 찾기 또는 -user 사용자 이름 찾기(find -user username)

마지막으로 수정한 예제별 Linux FIND 파일(Linux FIND Files by Last Modified Example)

지난 X일 동안 수정되거나 편집된 파일을 찾으려면 -mtime 다음에 숫자를 사용하십시오. 숫자 앞에 빼기 기호( - )를 붙이면 지금으로부터 며칠 전에 변경된 내용을 찾을 수 있습니다. (–)더하기 기호( + )는 지금으로부터 몇 일 전을 의미합니다. 

find -name “file-sample*” -mtime +5 (greater than 5 days ago)

find -name “file-sample*” -mtime -5 (less than 5 days ago)

마지막으로 수정한 시간(분)으로 찾으려면 -mmin 옵션을 사용하고 그 뒤에 분을 사용합니다. 위와 같이 +와 -를 사용합니다.

find -name “file-sample*” -mmin -5

find -name “file-sample*” -mmin +5

Linux에서 마지막으로 액세스한 시간별 파일 찾기 예제(Linux FIND Files by Last Accessed TIme Example)

파일을 마지막으로 연 시간을 기준으로 파일을 찾는 데 사용되는 옵션은 -atime (일) 및 -amin (분)입니다. 뒤로 돌아가서 + 및 - 기호를 보다 큼 및 미만으로 사용하는 일 또는 분 수를 따르십시오.

find -name “file-sample*” -atime -5

find -name “file-sample* -amin -5

FIND를 다른 Linux 명령과 결합(Combine FIND with Other Linux Commands)

grep 명령과 함께 find를 사용하는 위의 한 가지 예가 있으며 다른 많은 사람들과 함께 사용할 수 있습니다. find 및 기타 명령을 사용하면 매우 강력하고 시간을 크게 절약할 수 있음을 알 수 있습니다. 특정 유형의 파일을 삭제해야 한다고 상상해 보십시오 . (Imagine)파일 탐색기에서 검색하는 대신 올바른 명령을 내리기만 하면 몇 초 만에 완료됩니다. 이제 find 명령을 어떻게 사용하시겠습니까?



About the author

저는 소프트웨어 리뷰어이자 생산성 전문가입니다. Excel, Outlook 및 Photoshop과 같은 다양한 소프트웨어 응용 프로그램에 대한 소프트웨어 리뷰를 검토하고 작성합니다. 내 리뷰는 충분한 정보를 제공하며 애플리케이션 품질에 대한 객관적인 통찰력을 제공합니다. 2007년부터 소프트웨어 리뷰를 작성해 왔습니다.



Related posts