안녕하세요. 이번 포스팅에서는 리눅스의 find 명령어를 사용하여 시스템 상의 특정 파일을 검색하는 방법을 씁니다.
0. find 명령어
find 명령어는 리눅스 운영체제에서 파일을 검색하는 명령어입니다.
찾고자 하는 파일에 여러 가지 조건을 걸 수 있어서 다양하게 활용이 가능한 명령어입니다.
위와 같이 'find --help' 명령어로 사용법을 검색하면 여러 옵션을 사용할 수 있는 것을 확인할 수 있습니다.
여기서 주로 사용되는 옵션들에 대해 알아봅니다.
1. find 명령어 사용법 / 옵션
기본적으로 find 명령어의 용법은 아래와 같습니다.
find [옵션] [파일 경로] [표현식]
위의 명령어에서 중요한 부분은 파일 경로와 표현식입니다.
파일 경로는 리눅스의 절대 경로, 상대 경로의 형식 모두 사용가능하며 대부분 해당 명령어를 실행하는 위치와 그 하위 디렉토리를 포함하는 현재 경로('.')를 사용하거나 파일시스템 전체에서의 검색을 위해 루트 디렉토리('/')를 사용합니다.
표현식은 검색에서 특정 조건 또는 동작을 추가하면서 명령어를 더 효율적으로 사용할 수 있게 해줍니다.
특정 파일 이름이나 타입을 정하거나 파일을 검색 후에 어떤 동작을 취할지 등을 정할 수 있습니다.
name : 해당 이름의 파일을 찾음. 해당 이름에는 정규 표현식을 활용할 수 있음
type : 지정된 파일 타입에 해당하는 파일 검색
exec : 검색된 파일에 대해 지정된 명령 실행
user : 해당 유저에게 속한 파일 검색
empty : 빈 디렉토리 혹은 크기가 0인 파일 검색
delete : 검색된 파일 혹은 디렉토리 삭제
path : 지정된 문자열 패턴에 해당하는 경로에서 검색.
size : 파일 크기를 사용하여 파일 검색.
atime : n일 이내에 액세스된 파일을 찾음.
ctime : n일 이내에 만들어진 파일을 찾음.
mtime : n일 이내에 수정된 파일을 찾음.
mindepth : 검색을 시작할 하위 디렉토리 최소 깊이 지정.
maxdepth : 검색할 하위 디렉토리의 최대 깊이 지정.
2. find 명령어 사용 예시
현재 디렉토리와 그 하위 디렉토리들을 포함하는 범위에서 검색할 때 현재 디렉토리를 나타내는 '.'을 사용할 수 있습니다.
- 파일명으로 찾기
find . -name "test*"
#'test'로 시작하는 파일 찾기
find 명령어와 '-name' 옵션을 사용해서 'test'로 시작하는 파일을 찾을 수 있습니다. 검색식의 와일드카드 '*'을 이용해서 test로 끝나거나 시작하는 파일을 찾을 수도 있습니다.
- 파일 크기 / 타입으로 찾기
find . -empty
#빈 디렉토리 또는 파일 크기가 0인 파일 검색
find . -size +1024c
#파일 크기가 1024 byte보다 큰 파일 검색
find . -size -1024c
#파일 크기가 1024 byte보다 작은 파일 검색
find . -size 1024c
#파일 크기가 1024 byte인 파일 검색
find . -type d
#디렉토리를 모두 찾기
find . -type f
#파일을 모두 찾기
위의 명령어들을 활용하여 검색하는 파일의 크기 또는 형식(파일, 디렉토리)에 따라 검색 명령어를 설정할 수 있습니다.
- 파일 검색 후 명령 실행 하기
find . -name "*.txt" -delete
#'.txt'의 확장자를 가진 파일을 검색하고 삭제
find . -name "*test*" -exec ls -l {} \;
#'test' 단어가 포함된 파일을 찾아서 상세정보 출력
find / -name "test*" 2>/dev/null
#루트 디렉토리 아래에서 'test' 로 시작하는 파일을 삭제(파일 삭제 시, 권한등의 에러를 해결하기 위해 리다이렉션 활용 가능)
본 포스팅의 내용 및 이미지를 무단 전재, 재배포 또는 복사를 금지합니다.
인용 시 출처와 같이 공개해주세요!
도움이 되셨다면 댓글 또는 공감 부탁드립니다!
'IT > Linux_리눅스' 카테고리의 다른 글
[Linux / watch] 리눅스의 watch 명령어로 시스템 실시간 모니터링하기 (0) | 2022.11.12 |
---|---|
[Linux / ansible] CentOS7에서 Ansible 설치하기 (0) | 2022.11.10 |
[Linux / Ubuntu] 우분투(ubuntu) 리눅스의 버전 확인하기 (0) | 2022.08.09 |
[Linux / vim] vim 의 tab 간격 조절하기 / 띄어쓰기 조절하기 (0) | 2022.08.01 |
[Linux] shutdown 명령어로 리눅스 시스템 종료, 재부팅 (1) | 2022.07.28 |
댓글