Linear Algebra
🎋

4. 파일 및 디렉토리 검색

생성일
2022/02/02 10:37
태그
grep
find
우리가 윈도우 환경에서 문서 작업을 하다보면 어떠한 주제에 대한 내용을 바로 확인하기 위해 찾기 기능(Ctrl + F)을 사용하는 경우가 많다. 또한 Windows 탐색기 안에서도 내가 찾고자 하는 이름의 폴더 또는 디렉토리를 찾기 위한 기능이 탐색기 상단 오른쪽에 항상 존재한다. 이렇게 찾기라는 기능은 정말 자주 사용되는 기능이며 반드시 필요한 기능이다. 이러한 것이 리눅스에도 당연히 존재한다. 오늘은 검색하는 기능에 대해 알아보자.

파일 내용에서 검색

grep [옵션] [패턴] [파일 이름] : 파일 내용에서 특정 내용만 찾을 때 사용

[옵션] : 좀 더 디테일한 조건으로 찾을 때 사용한다

-: 대소문자 무시
-: 줄 번호 표시
-: 패턴을 제외한 내용만 출력
-w : 단어 단위로 검색 (ro != root , 입력한 정확한 단어로 일치해야함)
-c : 매칭되는 줄 수 표시
-: 매칭되는 패턴이 있는 파일 이름 출력
ex) grep -i root /etc/passwd : etc 하위 passwd 라는 파일에서 'root' 패턴을 대소문자를 구분하지 않고 찾아라

[패턴] : 찾고 싶은 내용을 입력, 일치하는 내용을 출력

정규표현식 : 어떤 문자를 표현할 때 다양한 특수문자를 이용해 표현하는 방식
^ : 줄의 시작을 지정(해당 패턴이 줄의 시작인 경우 캡쳐)
예를 들어, star 디렉토리 안에 있는 파일 file1의 내용이
root is administrator
guest is not root
라고 작성되어 있을 때 grep ^root /star/file1 를 실행시키면 root is admistrator 만 출력된다.
$ : 줄의 마지막 지정
. : 한 문자 대치
(ex. r. : r로 시작하고 한문자까지만 가능 : ra, rb)
* : 여러 문자 대치
(ex. r* : r로 시작하는 모든 단어 가능)
[] : 패턴 중 한 문자 일치
(ex. [abc]oot -> aoot, boot, coot만 가능)
[^] : 패턴 중 제외할 문자 지정
(ex. [^T]oot :: T를 제외한 oot부분 출력)
fgrep [옵션] [패턴] [파일이름] : 여러 특수문자들 (*,\,' 등등)을 단순한 문자로 인식해서 문서 내에서 해당 특수문자를 찾을 때 사용할 수 있다.

디렉토리 내에서 검색

find [경로] [조건] [아규먼트] [행동]

[경로] : 어디를 기준으로 검색할 것인지 입력한다. 하위 디렉토리까지 검색

[조건] : 어떤 조건으로 검색할 것인지 입력한다.

-name : 이름으로 검색
-type : 파일의 타입으로 검색, 디렉토리는 d , 파일은 f
-perm : 권한으로 검색
-user : 소유자로 검색
-size : 파일 크기로 검색,
(+는 이상, -는 이하, 단위는 512바이트 c)
-atime : 파일의 마지막 접근 시간으로 검색
-mtime : 파일의 마지막 수정 시간으로 검색

[아규먼트] : 조건에 맞는 값을 입력해준다

[행동] : 검색 결과를 어떻게 처리할 것인지 입력한다.

-ls : 자세한 결과 출력
-exec [명령어] {} \; : 검색한 파일을 특정 명령어로 실행
ex) find /star -name file1 -exec rm -rf {} \; star라는 폴더 안에 있는 file1이라는 파일(혹은 디렉토리) 제거하기

reference

리눅스 기초에 관한 포스트는 아래 유튜브 강의를 통해 이루어졌음을 알립니다.더 자세하게 배우고 싶으신 분들은 꼭 참조바랍니다