티스토리 뷰

find 는 특정 디렉토리에서 부터 내가 원하는 조건의 파일을 찾아주는 명령어 입니다.

 

특정 디렉토리에서 부터 라는 말은 해당 디렉토리의 하위 디렉토리를 포함해서 찾아준다는 것입니다.

예를 들어 아래와 같이 /home/test 폴더가 있고 그 안에 test00, test01, test02 폴더가 하위폴더로 존재하는 구조에서

"/home/test 에서 부터 이름에 "txt"가 들어가는 파일을 찾아주세요" 라는 식의 명령을 수행하면

하위 폴더도 포함해서 검색을 합니다.

 

 

아래와 같이 하위 폴더 및 파일이 존재할 때 find 를 사용해서 파일을 검색해봅시다.

 

 

1. find 

특정 조건없이 그냥 find 명령을 실행하면 현재 디렉토리 기준으로 파일 리스트를 출력해줍니다(하위폴더 포함)

2. find [경로] -name "[이름패턴]"

[경로] 에 지정된 /home 디렉토리를 기준으로 파일이름이 .txt 로 끝나는 모는 파일을 찾아냈습니다.
이름패턴에 " " 를 붙이지 않으면 패턴을 인식하지 못합니다.
이번에는 경로를 ./ 으로 지정했습니다. 상대경로니까 현재 디렉토리를 기준으로 검색하게 됩니다.

 

2. find [경로] -size [사이즈]

-size 0c 를 통해서 파일크기가 0 byte 인 파일만 찾아냈습니다.
--size +100c 는 100byte 이상인 파일만, -100c 는 100byte 이하인 파일만 찾아줍니다.
man find 에서 /size 로 검색하면 size 옵션 사용법이 나옵니다. c 옵션이 byte 를 의미한다고 잘 나와있습니다. -size 100c, -size 100k, -size 100m 드으로 다양하게 활용가능합니다. man page 종료는 q 를 누르면 됩니다.

 

3. find [경로] -readable

find --help 로 간단 사용법을 확인하니 -readable 옵션이 눈에 띕니다.
find [경로] -readalbe 로 읽기 가능한 파일을 확인했습니다. ! 를 활용하면 읽기 불가능한 파일만 확인 가능합니다.

4. find [경로] -excutable

마찬가지로 실행가능 파일, 실행불가능한 단순파일을 구분해서 검색해봤습니다.

5. find [경로] [옵션] -exec [커맨드] {} \;

find . / -executable 의 결과로 test00 test01 test02 .mozilla ./.mozilla/plugins ./.mozilla/extensions 이 실행가능한 파일로 분류된 것을 확인했었는데요

 

이 파일들에 대해서 실제 파일타입을 확인해보려면 이런식으로 모든 파일마다 file 명령어를 직접 실행해줘야 합니다.

더보기

file test00

file test01

file test02

file .mozlia

file ./.mozilla/plugins

file ./.mozilla/extensions

 

하지만 기존의 find 명령어에 -exec 옵션을 추가하면 find 된 결과에 대해서 명령어 연계 처리를 할 수 있습니다.

-exec [커맨드] {} \; 가 일반적인 사용법입니다.

커맨드 위치에는 file 말고도 ls -al 이라던지 본인이 활용가능한 커맨드를 작성하면 됩니다.

 

find ./ -executable -exec file {} \; 로 작성된 문장의 동작 원리를 살펴보면 

 

find ./ -executable 결과로 test00 이 한개 나왔다면 바로 이어서 file test00 \; 이 실행됩니다.

find ./ -executable 결과로 다음에 test01 이 나왔다면 바로 이어서 file test01 \; 이 실행됩니다.

 

즉 {} 이 find ./ -executable 의 결과물을 받아오는 역할을 하고,

\; 는 문장의 종료를 의미하는 구문입니다.

 

{} 역할을 정확히 알아야 다른 커맨드들을 응용해서 활용할 수 있습니다.

 

그리고 중요한 점은 find 는 파일에 대해서 검색해준다고 했는데

실제 실행가능한 파일로 디렉토리가 검색된 것을 확인할 수 있습니다.

리눅스에서는 디렉토리도 파일로 분류됩니다.

 

파일인데 디렉토리 속성이 있는 파일.

cd [디렉토리명] 으로 접근 및 이동이 가능하므로 실행가능하다고 분류되는 구나 로 이해하시면 되겠습니다.

 

 

[추가] find --help

find --help
man find 

 

find --help 나 man find 를 입력하면 find 명령어 사용법에 대한 도움이 제공됩니다.

find 는 기본적인 사용법 외에도 다양한 옵션이 제공되고 응용이 가능합니다.

 

본문에서 알려주는 아주 기초적인 명령어 외에도 다양한 사용법을 익히길 바랍니다.

 

그렇다고 미리 모든 옵션을 알고 있을 필요는 없습니다.

다만 필요할 때는 사용법 찾아보고 잘 적용하면 됩니다.

 

리눅스 도움말 페이지가 어렵다면 구글 검색을 활용하세요

find 사용법에 대해 잘 정리되어 있는 자료가 많이 있습니다.

728x90
반응형

'수업 노트 > 리눅스 기본 명령어' 카테고리의 다른 글

grep 명령어(1)  (0) 2021.08.22
find 명령어 사용법(2)  (0) 2021.08.22
cat 사용법  (0) 2021.08.16
file 사용법  (0) 2021.08.16
리눅스의 숨김파일  (0) 2021.08.16
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함