본문 바로가기
리눅스

리눅스 파일 및 디렉토리 검색관련 grep과 find 명령어 및 심볼릭 링크

by 햇병아리엔지니어 2022. 9. 15.
반응형

리눅스 파일 및 디렉토리 검색관련 명령어인 grep과 find와 심볼릭 링크에 대하여 알아보겠습니다.

 

먼저 grep명령어에 대해 알아보겠습니다.
리눅스 파일 내용에서 검색하는 명령어인 grep은 크게 2가지로 grep과 fgrep이 있습니다.
 

1.grep 명령어

파일 내용에서 특정 내용만 찾을 때 사용하는 명령어입니다. 
쉽게 말하면 원하는 문자나 문자열을 찾을 수 있는 명령어라 할 수 있습니다. 
특정 문자열 뿐만 아니라 특정 문자열을 제외한 나머지 내용도 찾을 수 있습니다. 

grep [옵션] [패턴] [파일 이름]을 넣어 원하는 내용을 찾아낼 수 있습니다.
 
여기서 [옵션] 값은 조금 더 디테일하게 조건을 넣어 내용을 찾을 때 사용합니다. 
-i : 대소문자 무시합니다.
-n : 줄 번호를 표시합니다.
-v : 패턴을 제외한 내용만 출력합니다. 
-w : 단어 단위로 검색합니다. 
-c : 매칭되는 줄 수를 표시합니다.
-l : 매칭되는 패턴이 있는 파일 이름을 출력합니다. 
-A num : --after-context=num: 특정 문자열로부터 num 이후 라인까지 출력합니다. 

[패턴]: 찾고 싶은 내용을 입력하여 일치하는 내용을 출력하는 것으로 정규표현식 사용이 가능합니다.
* 정규표현식 : 문자를 표현할 때 다양한 특수문자를 이용하여 표현하는 방식입니다. 
^ : 줄의 시작을 지정(해당 패턴이 줄의 시작인 경우 캡쳐합니다.) 
ex) ^root

$ : 줄의 마지막을 지정합니다.
ex) root$

. : 한 문자 대치 
ex) r..t

* : 여러 문자 대치 
ex) r* 

[]:패턴 중 한문자 일치 
ex) [rR]oot
grep [a-c,g-i]root[2-8] ./test
결과 값 : 
broot2
croot3
groot7
hroot8

[^] : 패턴 중 제외할 문자 지정 
ex) [^T]oot : T를 제외한 oot 부분 출력

그리고 grep의 명령어는 파이프 | 를 사용하여 원하는 입력을 파이프로 받아 grep 명령어를 사용할 수 있습니다. 

2. fgrep 명령어


문서에 특수문자가 포함되어 있는 경우 여러 특수문자들은 정규표현식으로 인식합니다. 
그래서 해당 정규표현식의 기능으로 검색이 될 수 있습니다.
이러한 경우 fgrep은 여러 특수문자들(*,\,',"등)을 단순한 문자로 인식하여 문서 내에서 해당 특수문자를 찾을 때 사용할 수 있습니다. 

3. find 명령어

디렉토리 내에서 검색하는 명령어로는 find가 있습니다.
* find [경로] [조건] [아규먼트] [행동]
[경로] : 어디를 기준으로 검색할 것인지 입력합니다. 하위 디렉토리까지 검색이 가능합니다. 
[조건] : 어떤 조건으로 검색할 것인지 입력합니다. 
-name : 이름으로 검색
-type : 파일의 타입으로 검색, 디렉토리는 d, 파일은 f
-perm : 권한으로 검색합니다.
-user : 소유자로 검색합니다. 
-size : 파일 크기로 검색합니다. +는 이상 -는 이하 단위는 512바이트 
        c 바이트 k 키로바이트 M 메가바이트 G 기가바이트

-atime : 파일의 마지막 접근 시간으로 검색합니다. 
-mtime : 파일의 마지막 수정 시간으로 검색합니다. 

ex) find / -name passwd -type d 

[아규먼트] : 조건에 맞는 값을 입력합니다.
[행동] : 검색 결과를 어떻게 처리할 것인지 입력합니다.
-ls : 자세한 결과를 출력합니다. 
-exec [명령어] {} \; 검색한 파일을 특정 명령어로 실행합니다.
ex) -exec rm -rf {} \;제거하기 


4. 심볼릭 링크 

윈도우의 바로가기 개념과 비슷하며 실질적인 디스크 상의 파일을 가리키는 것이 아닌 파일 시스템 상의 특정 파일을 가리키는 것을 심볼릭 링크라고 합니다.

링크란?
특정 파일 또는 디렉토리에 접근을 쉽게 할 수 있도록 하는 방법으로 파일 시스템이 물리적인 장치인 하드 디스크상에 저장되어 있는 특정 파일의 위치를 가리키는 것입니다. 

링크 생성 명령어
ln [옵션] [원본] [링크] : 옵션을 지정하지 않고 링크 파일을 생성하면 하드 링크를 생성할 수 있습니다. 
옵션으로 -s를 지정하고 링크 파일을 생성하면 심볼릭 링크를 생성할 수 있습니다. 

 


ex) ln -s 1111 hello 

반응형

댓글