728x90
반응형
안녕하세요. RTLog입니다.
오늘은 파일 검색 방법에 대해 알아보겠습니다.
파일 검색
Linux 시스템에서 파일 혹은 폴더를 검색하기 위한 명령어로 "find"를 사용합니다.
사용법: find [path] [expression] [action]
Expression (옵션 목록)
-name <filename> : 패턴과 일치하는 파일 검색( 대소문자 구분 O)
-iname <filename> : 패턴과 일치하는 파일 검색( 대소문자 구분 X)
-size n: n 크기의 파일 검색
-type x: x 형식의 파일 검색(d: directory, f: file, l: symbolic link, p: pipe, s: soket, ...)
-empty: 빈 파일/디렉토리
-perm <permission> : 명시된 권한과 일치하는 파일 검색
논리 연산자를 사용하여, 2개 이상의 expression을 사용하는 것도 가능합니다.
# /home/user 디렉토리와 그 하위 디렉토리에서 .txt 확장자를 가진 파일 검색
find /home/user -name "*.txt"
# 10MB보다 큰 파일 검색 (k, M, G, ...)
find /home/user -size +10M
# -perm 644는 권한이 644로 설정된 파일 검색
find /home/user -perm 644
# 혼합
find . -name "*.txt" -size +10M
# 논리연산자(-a == -and, -o == -or, -!==-not)
find /home/user -name "*.txt" -or -name "*.v"
find /home/user \(-name "*.txt" -or -name "*.v"\)
find 결과에 대한 처리 방법도 명시할 수 있습니다. 처리 방법(Action)에는 아래와 같은 종류가 있습니다.
-print: 출력 (default)
-ls: 검색 결과를 'ls -dils' 형식으로 출력
-delete: 검색된 파일 삭제
-quit : 하나만 찾고 검색 종료
+ 사용자 정의 방법으로 처리하는 것도 가능합니다.
find /home/user -ls -name "*.txt"
find /home/user -delete -name "*.txt"
find /home/user -quit -name "*.txt"
# 사용자 정의 기반 처리
# !!중괄호는 검색된 파일을 의미!!
# Change file permissions
find /path/to/search -type f -exec chmod 644 {} \;
# Delete files
find /path/to/search -type f -name "*.tmp" -exec rm {} \;
# Move files
find /path/to/search -type f -name "*.txt" -exec mv {} /path/to/destination \;
# '\;' vs '\+'
# \; : 파일이 검색될때마다 명령어를 실행
# \+ : 검색 모두 완료 후 명령어를 실행
find /path/to/search -name "*" -exec echo \{} \;
find /path/to/search -name "*" -exec echo \{} \+
728x90
반응형
'Linux' 카테고리의 다른 글
[Linux] C Shell Script - 제어문(3) (0) | 2024.03.27 |
---|---|
[Linux] C Shell Script - 제어문(2) (0) | 2024.03.27 |
[Linux] Process (0) | 2024.03.26 |
[Linux] C Shell Script - 제어문(1) (0) | 2024.03.26 |
[Linux] C Shell Script - Operator (0) | 2024.03.26 |