리눅스에서 특정 파일이나 디렉토리를 검색 할때 사용 할 수 있는 명령어로는 find 가 있습니다.
리눅스는 파일 시스템 특성상 복잡하게 되어 있는 경우가 많습니다. 그럴때 필요한 파일을 찾기 위해서 꼭 필요한 명령어 입니다.
이제 부터 find 의 명령어에 대해서 알아 보도록 하겠습니다.
설명은 간단하게 되어 있습니다.
우선 위와 같이 파일 및 디렉토리가 있습니다.
#find [파일 또는 디렉토리이름]
기본적으로 위와 같이 적으면 해당 폴더 안에서 찾아 줍니다. 하지만 저희는 좀더 다양한 방법을 이용해야 좀더 편하게 사용이 가능합니다.
자 이번에는 조금 길어 졌습니다.
#find [경로] [타입] [파일이름 또는 디렉토리이름]
자 기본적인 설정은 위와 같습니다. 명령어는 find 입니다 다음 [ . ] 은 해당경로를 말하는데 이때 검색되는 경로는 하위 경로를 포함하고 있습니다. 그 후 -name cp.txt 는 cp.txt 라는 이름을 가진 파일을 찾으라는 것입니다.
자 이정도만 알아도 사용하시는데 정말 큰 힘이 될 것입니다. 특정 파일을 찾는데 정말 도움이 많이 될 것입니다.
자 여기서 잠간 중요한 걸 확인 하고 가겠습니다. 바로 [./],[ /.] 입니다. 우수겟소리로 엔지니어를 하다보면 저 실수를 누구나 한번쯤 한다고 합니다. [./] 해당경로 입니다. [/.]은 / 경로의 모든 것을 말합니다. 특히 파일 삭제시 rm -rf 를 하시다가 이런 경로 실수를 하시면 자신의 손가락 및 머리를 저주 하실 겁니다. 자 이제 계속 해보도록 하겠습니다.
위와 많이 다르지는 않지만 다른 결과를 출력 하고 있습니다. 여기서 위와 다른 부분만 설명을 드리도록 하겠습니다. -name "cp*"
이 부분 입니다. 여기서 "cp*" 이 부분은 cp로 시작되는 파일 및 디렉토리를 검색하라는 것 입니다. 이 것에 대한 예를 적어 드리겠습니다.
cp 로 시작되는 모든 파일 또는 디렉토리 | find . -name "cp*" |
cp 가 포함 되는 모든 파일 또는 디렉토리 | find . -name "*cp*" |
cp 로 끝나는 모든 파일 또는 디렉토리 | find . -name "*cp" |
위와 같이 사용을 하시면 됩니다.
자 이번에는 파일만 혹은 폴더만 검색을 해 보도록 하겠습니다.
이렇게 결과가 나왔습니다. 위와 달라진 부분은 한 부분 입니다.
# find . -type f -name "cp*"
-type 이라는 부분이 생겨 났습니다. 여기에서 f 는 파일을 말합니다. 자 이번에는 디렉토리를 찾아 보겠습니다.
# find . -type d -name "cp*"
이번에는 -type 에 d 를 주었습니다. 여기서 d 는 디렉토리 입니다.
이제 여러분은 더 많은 일을 쉽게 할 수 있습니다.
자 이번에 여기에 저 파일에 대한 정보를 더 알고 싶습니다.
자 여기서 -exec 옵션을 주고 추가로 할 명령어를 적어 주면 사용이 됩니다. grep 이라던지 혹인 wc 명령어도 사용이 가능 합니다 .
저 -exec는 나중에 다시 한번 설명을 해드리도록 하겠습니다.
자 이번에는 하위 디렉토리 검색 제한을 걸겠습니다.
디렉토리 일명 뎁스 제한 입니다. 말 그대로 최대 뎁스를 지정해 주는 겁니다.
-maxdepth [뎁스크기]
위와 같이 사용 할 수 있습니다.
또 유용한 하게 사용할 수 있는 옵션 중 하나인 empty 파일을 찾아주는 것입니다.
# find cptest/ -empty
find [경로] -empty 이와 같이 사용 하면 해당 경로에 있는 크기가 0인 파일을 검색 할 수 있을 수 있습니다.
find 같은 경우는 다양 하게 사용을 할 수 가 있습니다. 그리고 검색 한 후 다음 파일을 삭제 하거나 압축 하거나 복사 하거나 다양한 작업을 할 수 있으니 여러가지 방법을 알아 보는 것도 추천을 드립니다.
보시다가 궁금하신 명령어 사용법이 있으시면 댓글 남겨 주시면 제가 알려 드리도록 하겠습니다.
그리고 여러분의광고 클릭은 저에게 큰 도움이 됩니다~ 많은 클릭 부탁드립니다