예제가 포함된 Linux FIND 명령


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

이 때문에 필요할 때 Linux에서 올바른 파일이나 폴더를 찾는 것이 어렵습니다. 이 글에서는 Linux FIND 명령을 사용하는 방법을 알아보고 가능한 모든 예시를 제공하겠습니다.

Linux FIND 명령 구문

구문은 단어나 명령이 조합되는 방식을 나타냅니다. 단어를 섞기만 해도 일반 문장이 의미 없는 문장이 될 수 있듯이, 명령도 올바른 구문으로 사용되지 않으면 실패할 수 있습니다.

[경로] [조건] [작업] 찾기

그 의미는 다음과 같습니다.

찾기 – Linux에서 찾기 유틸리티를 시작합니다

경로 – 볼 위치

조건 – 검색에 적용할 인수

작업 – 결과로 수행하려는 작업

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

찾아보세요. -이름 파일-샘플.rtf -인쇄

예상한 대로 파일 이름은 file-sample.rtf 입니다.

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

-name 조건 은 find에 해당 특정 이름의 파일을 가져오라고 지시합니다.

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

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

Linux 다른 디렉토리에서 찾기

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

홈/사용자 이름 file-sample.rtf 찾기

여전히 재귀 검색이므로 사용자 아래의 모든 디렉터리를 검색합니다..

Linux FIND 여러 디렉토리 검색

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

/lib /var /bin -name file-sample.rtf 찾기

재귀가 없거나 재귀를 제한하는 Linux FIND

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

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

find -name file-sample.rtf -maxlength 1

-maxlength 2 이상의 숫자를 사용하면 훨씬 더 깊은 수준으로 이동한다는 의미입니다.

find -maxlength 5 -name file-sample.rtf

Linux FIND 와일드카드 예

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

집/사용자 이름 파일*샘플* 찾기

유형별 Linux FIND 예

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

f – 파일

d – 디렉토리

b – 장치 차단

c – 캐릭터 장치

l – 심볼릭 링크

s – 소켓

홈/사용자 찾기 -이름 파일*샘플* -유형 d

Linux FIND 대소문자를 구분하지 않는 예

Windows와 달리 Linux는 문자가 대문자인지 소문자인지를 중요하게 생각합니다. 따라서 File-Sample.rtf와 file-sample.rtf를 모두 검색하려면 -iname 옵션을 사용하세요.

홈/사용자 찾기 -iname File-Sample.rtf

Linux 여러 파일 찾기 예

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

홈/사용자 찾기 -name file-sample.rtf -o -name file-sample.html

이름과 일치하지 않는 Linux FIND 파일

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

홈/사용자 찾기 -name file-sample* -not -name *.html

오류 결과가 없는 Linux FIND

재귀가 없는 찾기 예제에서는 검색할 수 없는 모든 디렉터리와 올바른 결과가 나열되어 있음을 확인하세요. 그거 짜증나네. 모든 "권한 거부됨" 디렉터리가 표시되지 않도록 합시다. 다른 리눅스 터미널 명령, grep과 결합하세요. 특정 단어가 포함된 파일 찾기 까지 grep과 함께 Find를 사용할 수도 있습니다.

find -maxlength 5 -name file-sample.rtf 2>&1 | grep -v “권한 거부됨”

2>&1 을 분석해 보겠습니다.

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

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

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

& – 하나로 묶는다는 뜻입니다.

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

이제 |를 살펴보겠습니다. grep -v “권한이 거부되었습니다.” .

| (파이프라고 함) – Linux에게 왼쪽에 있는 결과를 오른쪽에 있는 결과로 공급하도록 지시합니다. grep 명령에 입력됩니다.

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

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

권한별 Linux FIND 예

.

이것을 잘 활용하려면 Linux 권한 알아보기 이 필요합니다.

예제 파일에는 권한 775가 있는 파일을 제외하고 모두 권한 664가 있습니다. 해당 파일을 찾으려면 -perm 옵션을 사용하세요.

문서 찾기/ -name file-sample* -type f -perm 775

Linux 크기별 찾기 예

크기별로 파일을 찾는 것은 하드 드라이브를 가득 채우는 대용량 파일을 가져오는 데 유용합니다. -size 옵션, 원하는 크기 및 다음 접미사 중 하나를 사용하십시오. 접미사를 사용하지 않으면 -size의 기본값은 b 입니다. 특정 크기보다 크거나 같은 파일을 찾으려면 크기 앞에 더하기 기호(+)를 넣으세요.

M – 메가바이트

G – 기가바이트

k – 킬로바이트

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

c – 바이트

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

find -size +500k

소유자별 Linux 찾기

소유자별로 파일을 찾는 방법에는 두 가지가 있습니다. 하나는 소유자의 사용자 이름별이고 다른 하나는 사용자 그룹별입니다. 사용자 이름으로 찾으려면 -user 옵션과 사용자 이름을 차례로 사용하세요. 사용자 그룹별로 찾으려면 -group 뒤에 그룹 이름을 입력하세요..

find -user 그룹 이름 또는 find -user 사용자 이름

마지막 수정된 예를 통한 Linux FIND 파일

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

find -name “file-sample*” -mtime +5(5일 이상 전)

find -name “file-sample*” -mtime -5(5일 이내)

최근 수정 시간(분)을 찾으려면 -mmin 옵션 뒤에 분 수를 입력하세요. 위와 같이 +와 –를 사용하세요.

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

find -name "file-sample*" -mmin +5

마지막으로 액세스한 시간별 Linux FIND 파일 예

.

파일을 마지막으로 연 날짜를 기준으로 파일을 찾는 데 사용되는 옵션은 며칠의 경우 -atime , 분의 경우 -amin 입니다. 그 뒤에 뒤로 돌아가는 일수 또는 분 수를 표시하고 초과 및 미만을 나타내는 + 및 – 기호를 사용하세요.

find -name "file-sample*" -atime -5

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

FIND를 다른 Linux 명령과 결합

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

.

관련 게시물:


18.01.2022