본문 바로가기
Linux

[Linux] 파일 검색

by RTLog 2024. 3. 26.
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 \{} \+

 

'\;' vs '\+'

 

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

let textNodes = document.querySelectorAll("div.tt_article_useless_p_margin.contents_style > *:not(figure):not(pre)"); textNodes.forEach(function(a) { a.innerHTML = a.innerHTML.replace(/`(.*?)`/g, '$1'); });