IT 소스/Linux

[Linux] 파일 및 디렉터리 검색하기 - find

한량이야기 2024. 9. 6. 15:23
반응형

안녕하세요. 경제적, 시간적 자유를 꿈꾸는 한량입니다.

'find' 명령어 설명

Linux - 파일 및 디렉터리 검색하기 - find

 

'find' 명령어는 이름, 유형, 크기, 수정 날짜 등과 

같은 다양한 기준을 기반으로 파일 시스템 내의

 파일 및 디렉터리를 검색하는 데 사용되는 강력한 도구입니다. 

이는 매우 다재다능하며 다른 명령과 결합하여 

복잡한 파일 검색 작업을 수행할 수 있습니다.

 

1. find 기본 구문

'find' 명령의 기본 구문은 다음과 같습니다.

find [starting directory] [criteria] [actions]

 

starting directory : 검색을 시작할 디렉터리를 지정합니다. 

현재 디렉터리를 나타내는 절대 경로, 상대 경로 또는 닷(.) 일 수도 있습니다.
예 : /home/user/documents, .(현재 디렉터리), /(루트 디렉터리)

 

criteria : 기준은 파일이나 디렉터리가 일치하기 위해 충족해야 하는 조건입니다. 

여기에는 파일 이름, 유형, 크기, 수정 시간 등이 포함될 수 있습니다.

-name : 이름으로 파일을 검색합니다. (와일드카드 포함 또는 제외)
-type : 파일 유형별로 검색합니다. (파일은 f, 디렉터리는 d)
-size : 파일 크기로 검색합니다. (100MB보다 큰 파일의 경우 +100M)
-mtime : 수정 시간으로 검색합니다. (지난 7일 이내에 수정된 파일의 경우 -mtime -7)

 

actions : 작업은 기준과 일치하는 파일이나 디렉터리로 수행할 작업을 지정합니다. 

기본 동작은 발견된 항목의 경로를 화면에 인쇄하는 것이지만, 

다른 동작에는 파일 삭제, 명령 실행 등이 포함될 수 있습니다.

-print : 일치하는 파일이나 디렉터리를 표시합니다. (기본 동작입니다)
-delete : 일치하는 파일이나 디렉터리를 삭제합니다.
-exec : 일치하는 각 파일에 대해 명령을 실행합니다.

 

2. find 명령어 주요 옵션

옵션/기준 설명
-name 이름으로 파일과 디렉터리를 찾습니다. (모든 .txt 파일에 대해 *.txt와 같은 와일드카드 지원)
-iname -name과 비슷하지만 대소문자를 구분하지 않습니다.
-type 유형별로 파일을 찾습니다. (일반 파일 f, 디렉토리 d, 링크 l)
-size 크기별로 파일을 찾습니다. (50MB보다 큰 파일 '+50M', 1GB보다 작은 파일 '-1G')
-mtime 수정 시간별로 파일을 찾습니다. (지난 7일 동안 수정된 파일 -mtime -7)
-user 특정 사용자가 소유한 파일을 찾습니다.
-group 특정 그룹이 소유한 파일을 찾습니다.
-perm 특정 권한이 있는 파일을 찾습니다. (644권한의 파일 -perm 644)
-exec 일치하는 각 파일에 대해 명령을 실행합니다.
-delete 일치하는 파일을 삭제합니다. (주의해서 사용)

 

3. find 명령 사용 예

'find' 명령어가 어떻게 작동하는지 알아보기 위해 몇 가지 예를 살펴보겠습니다.

 

1. 이름으로 파일 찾기

find . -name "*.txt"

'find' 명령어 실행

이 명령은 현재 디렉터리와 하위 디렉터리에 있는 모든 '.txt' 파일을 검색합니다.

 

2. 이름으로 파일 찾은 후 삭제

find /path/to/directory -name "*.log" -delete

'find' 명령어 실행

이 명령은 지정된 디렉터리와 해당 하위 디렉터리에 있는 모든 .log 파일을 찾아 삭제합니다.

 

3. 100MB보다 큰 파일 찾기

find / -size +100M

'find' 명령어 실행

이 명령은 루트 디렉터리(/)부터 전체 파일 시스템에서 100MB보다 큰 파일을 검색합니다.

 

4. 각 파일에서 명령을 찾아 실행

find . -type f -name "*.bak" -exec rm {} ₩;

이 명령은 현재 디렉터리에서 모든 .bak 파일을 찾아 삭제합니다. 

{}는 현재 파일의 자리 표시자이고 \;는 명령의 끝을 나타냅니다.

 

 

[Linux] 파일 및 디렉터리 삭제하기 - rm (remove)

안녕하세요. 경제적, 시간적 자유를 꿈꾸는 한량입니다. Linux - 파일 및 디렉터리 삭제하기 (rm 명령어)'rm' 명령어는 리눅스 및 유닉스 계열 운영체제에서파일과 디렉터리를 삭제하는 데 사용되

hanryangitstory.tistory.com

반응형