또이리의 Server Engineer

리눅스 find 명령어 본문

Linux Engineer

리눅스 find 명령어

또이리 2020. 11. 3. 22:24

리눅스 find 명령어

Linux commands 리눅스 명령어 find 이번 스토리는 find명령어에 대하여 설명해 드리겠습니다.

제가 느끼기에 나름 중요하고 자주 사용하는 명령어라고 생각합니다.

 

find 명령어는 조건에 맞는 파일 또는 디렉터리를 검색하고 찾는 데 사용됩니다. find 명령어는 권한(permissions), 사용자(users), 그룹(groups), 파일 유형(file type), 날짜(date), 크기(size) 및 기타 다양한 조건을 사용할 수 있습니다.

 

현재 디렉토리에서 이름(파일명)으로 파일 찾기

Find Files Using Name in Current Directory

데스트에 사용 되는linux.txt 파일은 touch linux.txt 명령어를 사용해서 임의로 만든 파일입니다. 내용은 없습니다.

현재 작업하고 있는 디렉토리 ~(/root)에서 linux.txt인 파일을 찾아보겠습니다.

 

find 명령어

현재 디렉토리를 의미하는 .

이름(파일명)으로 찾는 옵션 -name

찾으려고 하는 파일명과 확장자 linux.txt

find1

현재 디렉터리에서 linux.txt 파일을 찾았습니다.

linux.txt 파일을 지우고 다시 find 명령어를 실행해 보겠습니다.

find2

linux.txt 파일을 지운 후, find 명령어를 사용해서 linux.txt 파일을 찾게 되면, 아무것도 표시되지 않습니다.

가장 기본 명령어 옵션(-name)만 알아도 대부분의 검색에 활용할 수 있습니다.

 

opt 디렉토리에서 이름(파일명)으로 파일 찾기

Find Files Under Opt Directory

/opt라는 디렉토리에서 linux.txt라는 파일을 찾아보겠습니다.(/opt 디렉토리 안에 linux.txt라는 파일도 touch 명령어로 미리 만들어 놓았습니다.)

 

사용자가 작업하는 현재 디렉터리의 위치는 상관이 없습니다.

 

find 명령어

특정 디렉토리 /opt

옵션 -name

찾으려고 하는 파일명과 확장자 linux.txt

find 3

특정 디렉터리에 있는 파일을 이름으로 찾았습니다. 이해하면 영리하게 활용할 수 있는 명령어입니다.

 

대문자와 소문자 구분 없이 파일 찾기

Find Files Using Name and Ignoring Case

/opt라는 디렉터리에서 linux.txt라는 파일을 모두 찾아 보겠습니다.(test에 필요한 파일은 touch 명령어를 사용해서 미리 만들어 놓았습니다.)

 

find 명령어

특정 디렉토리 /opt

옵션 -iname (일반적으로 i 가 붙게 되면 리눅스에서는 대소문자 구분 없이 검색하게 됩니다. ex> grep | -i)

찾으려고 하는 파일명과 확장자 linux.txt

find 4

-name 옵션으로 find 명령어를 실행했을 때와 -iname 옵션을 사용한 find 명령어를 실행했을 때, 검색 결과가 다른 것을 볼 수 있습니다.

 

-iname 옵션을 사용했을 때는 대소문자 구분 없이 linux.txt 모든 파일을 찾아서 표시했기 때문입니다. 이것은 확장자에도 적용이 됩니다. -iname 옵션을 잘 활용하면, 대소문자로 구분된 같은 이름의 파일을 편하게 검색할 수 있습니다.

 

이름으로 디렉터리 찾기

Find Directories Using Name

이번에는 파일이 아닌 디렉터리를 찾아보겠습니다. type옵션을 사용하면 됩니다.

find 명령어

최상위 디렉토리 /

타입으로 검색 -type

디렉토리 d

이름으로 검색 -name

찾으려고 하는 디렉토리 이름 mnt

find 5

mnt라는 디렉터리를 찾아서 경로를 표시합니다. 이정도 되면 옵션만 잘 활용하면 내 시스템에 있는 파일이나 디렉토리는 무엇이든 찾아낼 수 있습니다.

 

이름으로 txt 파일 찾기

Find TXT Files Using Name

위의 디렉토리 검색과 같은 맥락입니다. 단순히 이름(파일명)만 가지고 찾는 것이 아니라, type 옵션을 사용해서 파일을 찾는 방법을 설명해드리겠습니다.

 

find 명령어

현재 디렉터리 .

타입으로 검색 -type

파일 f

이름으로 검색 -name

찾으려고 하는 파일명과 확장자 linux.txt

find 6

현재 디렉터리에 있는 linux.txt 파일을 보여줍니다. 위의 type 명령어를 사용하면 확실히 파일과 디렉터리를 구분 지어 검색할 수 있습니다. 원하는 타입의 결과값만 찾아볼 수 있습니다.

 

현재 디렉터리에서 모든 txt 파일 찾기

Find all TXT Files in Directory

find 명령어

현재 디렉터리 .

타입으로 검색 -type

파일 f

이름으로 검색 -name

조건 *(숫자 8 키 위에 있는 별 또는 곱하기)<---모든 글자 수와 상관없는 확장자가 txt인 파일 "*.txt"

find 7

위와 같이 파일명과 관계없이 확장자가 txt 파일을 현재 디렉터리에서 모두 찾아서 표시합니다.

find 명령어에서 조건에 사용되는 ""큰따옴표와 ''작은따옴표의 차이점이 궁금해서 둘 다 사용해 보았습니다.

검색 결과로는 다른 점이 없어 보입니다. 다른 점을 아시는 분은 알려주시기 바랍니다.

Comments