Linux - 3 [grep, find 이론]

_Block·2022년 11월 17일

Linux

목록 보기
3/7
post-thumbnail

🐧 grep 개요

파일 내용에서 특정 내용만을 찾고자 할떄 사용이 됩니다.

형태는 이와 같습니다.

  • grep [옵션] [패턴] [파일이름]

예시는 이와 같습니다.

  • grep -i root /etc/passwd

해당 예시의 설명은 이와 같습니다.

  • i 옵션은 대소문자를 구분하지 말고 모두 찾으라는 의미
  • root는 찾고자 하는 단어
  • /etc/passwd는 파일의 이름

주로 사용되는 옵션은 이렇게 구성이 됩니다.

1. i
- 대소문자 무시

2. n
- 줄 번호 표시

3. v
- 해당 패턴을 제외한 내용을 출력

4. w
- 단어 단위로 검색
- 예를들어 패턴이 wo라면 work는 검색이 되지 않습니다.

5. c
- 매칭되는 줄 갯수를 표시

6. l
- 매칭되는 패턴이 있는 파일 이름을 출력

일반적인 옵션이 이와 같은데 해당 옵션에 추가적인 옵션을 제공 할 수도 있습니다.

제 개인적인 생각으로는 이러한 옵션만 추가적으로 적용하면 좋을 것 같습니다.

1. ^
- 첫번쨰로 찾는 패턴을 표시합니다.
- 예를들면

my name is root
your name is root

라는 글이 존재한다면 첫번쨰 my name is root만 확인이 됩니다.

사용법예시는 grep ^root 파일명 이와 같이 사용합니다.

2. $
- 반대로 마지막 줄의 패턴을 표시 합니다.
- 앞선 예시에서 your name is root가 표기가 되며

사용법 예시는 grep root$ 파일명 처럼 사용이 됩니다.

하지만 만약 저러한 옵션이 아니라 정말 특수문자를 찾아야 할떄에는 fgrep를 활용하면 저러한 특수 문자또한 단순한 문자로 처리해 줍니다.

🐧 find 개요

grep는 특정 파일 내에서 어떠한 문자를 찾는 명령어 입니다.

이에 반해 find는 폴더 내에서 어떠한 파일을 찾는 명령어를 말합니다.

형태는 이와 같습니다.

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

예시는 이와 같습니다.

find / -name file -exec rm -rf {} \;

/ 루트 디렉토리를 의미하며, 시스템 내의 모든 파일을 의미하게 됩니다.

-name 조건을 의미하면 파일의 이름을 찾는다는 조건 입니다.

file 조건에서 검색할 파일의 이름 입니다.

-exec rm -rf 행동을 의미하며, 해당 행동은 찾는 모든 파일을 삭제한다는 의미 입니다.

{} \;는 단순한 규격입니다.

  • exec를 사용한다면 반드시 들어가야 하는 규격 입니다.

조건에는 다음과 같은 조건들이 있습니다.

1. -name
- 이름으로 검색

2. -perm
- 권한으로 검색

3. -user
- 소유자로 검색

4. -size
- 파일의 크기로 검색

5. -atime
- 파일의 마지막 접근 시간으로 검색

6. -mtime
- 파일의 마지막 수정 시간으로 검색

7. -type
- 파일의 타입으로 검색
- 디렉토리는 d, 파일은 f

행동에는 크게 두가지가 사용 됩니다.

1. -ls
- 찾은 파일의 자세한 결과를 출력
- 일반적으로 알고 있는 ls -al 처럼 출력 됩니다.

2. -exec [명령어]
- 검색한 파일을 특정 명령어를 실행하여 적용 합니다.
--- 예시 참고
profile
Block_Chain 개발자 입니다. 해당 블로그는 네트워크에 관한 내용을 다루고 있습니다.

0개의 댓글