Linux find 명령은 가장 일반적으로 사용되는 명령 중 하나입니다.
다만 옵션이 다양하다 보니 사용법이 쉽지 않고 서버 개발에서 많이 사용하는 명령어이다.
따로 정리하는 것도 좋을 것 같아서 정리하겠습니다.
찾기 명령
Linux find 명령은 Linux 파일 시스템에서 파일을 검색하는 명령입니다.
다양한 표현을 사용하여 원하는 파일 목록을 추출할 수 있습니다.
하나
2
삼
4
|
찾다 (노선) (가능성) (표현)
# 현재 위치에서 로그를 포함하는 모든 파일 찾기
찾다. –성 “*규약*”
|
CS |
가능성
- P : 심볼릭 링크를 따르지 말고 심볼릭 링크 정보 자체를 사용하십시오.
- L: 심볼릭 링크와 관련된 파일에 대한 정보를 사용합니다.
- H : 명령줄 인수를 처리할 때를 제외하고 기호 링크를 따르지 마십시오.
- D: 디버그 메시지 출력.
노선
find의 인수 값으로 경로를 사용합니다. 상대경로와 절대경로 모두 가능하며 대부분의 리눅스의 경우 이 경로 인자 값을 생략하면 현재 위치(.)가 입력된 것으로 간주한다. 그러나 이 경로를 입력하지 않으면 Unix에서 명령이 실패합니다.
표현
- 이름: 이 이름을 가진 파일을 찾습니다. 이 이름에 정규식을 사용할 수 있습니다.
- 유형: 지정된 파일 유형과 일치하는 파일 검색
- user : 사용자가 소유한 파일 검색
- empty : 크기가 0인 빈 디렉터리 또는 파일을 검색합니다.
- 삭제: 검색된 파일 또는 디렉토리를 삭제합니다.
- exec: 검색된 파일에서 지정된 명령을 실행합니다.
- 경로 : 지정된 문자열 패턴과 일치하는 경로에서 검색합니다.
- 인쇄: 검색 결과를 인쇄합니다. 검색어는 줄 바꿈으로 구분됩니다. (기본값)
- print0 : 검색 결과를 출력합니다. 검색 항목은 0으로 구분됩니다.
- size : 파일 크기를 기준으로 파일을 검색합니다.
- mindepth: 검색을 시작할 하위 디렉터리의 최소 깊이를 지정합니다.
- maxdepth: 검색할 하위 디렉터리의 최대 깊이를 지정합니다.
- atime : n일 이내에 액세스한 파일을 찾습니다.
- ctime : n일 이내에 생성된 파일을 찾습니다.
- mtime : n일 이내에 수정된 파일을 찾습니다.
- cnewer 파일: 이 파일보다 최근에 수정된 파일을 찾습니다.
find 명령은 다른 명령과 달리 옵션이 거의 없으며 이 표현식을 사용하여 찾을 대상을 결정합니다. 이 식은 대상 범위를 더 줄이기 위해 중첩될 수도 있습니다.
Linux를 사용한 예
파일 이름으로 검색(-name 옵션)
네이밍 옵션으로 특정 문자열이 포함된 제목을 가진 파일을 찾을 때 사용하며, 많이 사용하기 때문에 사용법을 익히시면 좋습니다.
하나
2
삼
4
5
6
7
8일
9
10
11
12
13
14
|
# 현재 디렉토리에서 test가 포함된 파일 찾기
찾다. –성 “*시험*”
# 현재 디렉토리에서 확장자가 .txt인 모든 파일 찾기
찾다. –성 “*.txt”
# 현재 디렉터리에서 확장자가 .txt인 파일을 검색하고 모두 삭제합니다.
찾다. –성 “*.txt” –끄다
# 현재 디렉토리에서 test로 시작하는 파일 찾기
찾다. –성 “시험*”
# 현재 디렉토리에서 확장자가 test인 파일 찾기
찾다. –성 “*시험”
|
CS |
유형별 검색(-유형)
하나
2
삼
4
5
6
7
8일
|
# 현재 디렉토리에서 모든 디렉토리 찾기
찾다. –유형 d
# 현재 디렉토리에서 테스트가 포함된 디렉토리 찾기
찾다. –성 “*시험*” –유형 d
# 현재 디렉토리에서 모든 파일 찾기
찾다. –유형 f
|
CS |
유형별로 검색할 수도 있습니다. B. 폴더 또는 디렉토리.
특정 파일 형식만 별도로 추출할 수도 있습니다.
- 디: 디렉토리
- f : 공통 파일
- l : 심볼릭 링크
파일 크기로 검색(-empty, -size)
하나
2
삼
4
5
6
7
8일
9
10
11
12
13
14
15
16
17
|
# 현재 디렉토리에서 비어 있거나 크기가 0인 파일 검색
찾다. –비어 있는
# 현재 디렉터리에서 test 또는 크기가 0인 파일이 있는 빈 디렉터리를 찾아 삭제합니다.
찾다. –성 “*시험*” –비어 있는 –끄다
# 현재 디렉토리에서 1024 바이트의 파일 찾기
찾다. –크기 1024c
# 현재 디렉토리에서 1024바이트보다 큰 파일 검색
찾다. –크기 +1024c
# 현재 디렉토리에서 1024바이트보다 작은 파일 검색
찾다. –크기 –1024c
# 현재 디렉토리에서 1kb보다 크고 10kb보다 작은 파일 검색
찾다. –크기 +1k –크기 –10k
|
CS |
빈 파일이나 파일 크기를 확인하는 데 사용할 수 있습니다.
- b: 블록 단위
- c:바이트
- k : 킬로바이트
- w : 2바이트 워드
검색된 파일에 대해 추가 명령 실행(-exec)
하나
2
삼
4
5
6
7
8일
|
# 현재 디렉토리에서 “시험”자세한 정보가 포함된 파일을 찾아 인쇄하십시오.
찾다. –성 “*시험*” –ls 실행 –l {} \;
# 현재 디렉토리의 파일에서 “시험”맞는 것을 찾아라
찾다. –유형 f –grep 실행 “시험” {} \;
# 현재 디렉토리에서 “.txt” 확장 프로그램을 찾아 모두 삭제
찾다. –성 “*.txt” –exec rm {} \;
|
CS |
find의 검색 결과로 특정 명령을 실행할 수도 있습니다.
-exec 명령을 사용하여 {} \;
이런 식으로 사용할 수 있습니다.