LINUX

[11] 리눅스 - 파일 찾기(find,grep)

혀내 2022. 6. 15. 11:19
반응형

파일 찾기 - find

$ find 디렉터리 [-옵션]

find 명령어 : 옵션의 검색 조건에 따라 디렉터리 아래에서 해당되는 파일들을 모두 출력한다.

옵션

-name 파일이름
파일 이름에 대해 검색
-atime +n
접근 시간이 현재 기준으로 n일 넘게 지난 파일 검색
-atime -n
접근 시간이 현재 기준으로 n일 이내인 파일 검색
-mtime +n
수정 시간이 현재 기준으로 n일 넘게 지난 파일 검색
-mtime -n
수정 시간이 현재 기준으로 n일 이내인 파일 검색
-perm 000
파일 권한이 000인 파일 검색
-type x
파일 종류가 x인 파일 검색
-size n
크기가 n 이상인 파일 검색
-links n
링크 개수가 n인 파일 검색
-user 사용자이름
사용자 이름에 대해 검색
-group 그룹이름
그룹 이름에 대해 검색
-print
찾은 파일의 절대 경로명 출력
-ls
찾은 파일에 대해 ls -dils 실행 결과 출력
-exec cmd {}\;
찾은 파일에 대해 cmd 명령어로 동일한 작업 수행

  -type 옵션에서 사용할 수 있는 파일 종류

  • d(디렉터리)
  • f(일반 파일)
  • l(심볼릭 링크)
  • b(블록 장치 파일)
  • c(문자 장치 파일)
  • s(소켓 파일)

예시)

$ find . -type d -perm 700 print 
$ find . -name core -size +2048 -ls

 


파일 찾기 - grep

$ grep [-옵션] 패턴 파일 
$ grep -w with you.txt

grep 명령어 : 파일들을 대상으로 지정된 문자열 패턴을 검색한 뒤, 패턴을 포함하는 줄들을 출력한다.

옵션

-i
대소문자를 무시
-l
해당 패턴이 들어있는 파일 이름을 출력
-n
각 줄 번호도 함께 출력
-v
패턴을 포함하지 않는 줄 출력
-c
패턴과 일치하는 줄의 수 출력
-w
패턴이 한 단어로 된 것만 검색

정규식

?
한 글자(또는 없음)
.
임의의 한 문자
*
바로 앞의 문자를 0번 이상 반복
[]
[] 사이의 문자 중 하나를 의미( - 로 범위 지정)
[^...]
[^ ] 사이 문자를 제외한 나머지 문자 중 하나
^,$
각각 줄의 시작과 끝을 의미

 

예시)

ab? ab 또는 ab 다음에 한 글자가 오는 문자열
a...b a로 시작해 b로 끝나는 5글자 문자열
a*b b, ab, aab, aaab, ... 등의 문자열
[abc]d ad, bd, cd를 뜻함
[a-z] a부터 z까지 중 하나
[^abc]d ad, bd, cd는 포함하지 않고 ed, fd 등은 포함
[^a-z] 소문자가 아닌 모든 문자
^문자열 문자열로 시작하는 줄
문자열$ 문자열로 끝나는 줄

 

$ grep 'st..'
$ grep -w 'st.*e' you.txt

 

+ 파이프( | )와 함께 사용할 수 있다

어떤 명령어를 실행한 결과에서 원하는 단어나 패턴을 찾고 싶을 때 grep과 사용한다.

$ ls -l | grep with 
$ ps -ef | grep with

반응형