파일을 찾는 법
파일은 크게 두가지 용도로 사용된다
- 파일을 보관하기 위한 용도
- 해야할 일에 대한 명령을 보관하고 있는 실행파일
locate
[cookie@cookie ~]$ locate *.log
/usr/lib/rpm/rpm.log
/usr/share/doc/libjpeg-turbo-1.2.90/change.log
/var/log/boot.log
/var/log/ncloud-init.log
/var/log/nsight_updater.log
/var/log/yum.log
/var/log/tuned/tuned.log
/var/spool/plymouth/boot.log
locate는 디렉토리를 뒤지지 않고 데이터베이스(mlocate)를 뒤진다
mlocate 데이터 베이스는 컴퓨터 안에 저장되어있는 파일들에 대한 정보를 담고 있고, 그 파일의 목록은 updatedb 명령어를 실행하면 저장된다
이 작업은 대부분의 리눅스 시스템에서 하루에 1번씩 정기적으로 작업을 처리하게 되어있고, 이를 통해 파일의 위치가 정리정돈 된다
이 때문에 훨씬 더 빠르게 파일을 찾을 수 있다
find
실제로 디렉토리를 뒤지기 때문에 속도는 느리지만, 현재 상태를 가져올 수 있다
굉장히 다양한 사용법이 있기 때문에, 파일을 찾는데의 마스터링 툴은 find라 할수있다
35가지의 find 사용법
https://www.tecmint.com/35-practical-examples-of-linux-find-command/
# -name *.log : 이름이 *.log인 파일
[cookie@cookie ~]$ find ~ -name *.log
/home/cookie/script/a.log
/home/cookie/script/b.log
/home/cookie/script/bak/a.log
/home/cookie/script/bak/b.log
# -type f : type이 파일
[cookie@cookie ~]$ find . -type f -name *.log
./script/a.log
./script/b.log
./script/c.log
./script/bak/a.log
./script/bak/b.log
./script/bak/c.log
find의 아주 강력한 기능
예제) 검색된 파일을 삭제한다
- 현재 머물고 있는 디렉토리에서 파일을 찾는데,
- 그 파일이 디렉토리가 아닌 파일이어야 하고
- 이름은 b.log여야 한다
- 파일을 찾은 다음에 그 파일에 대해서 명령어를 실행한다 (-exec)
- rm -rf 를 실행한다
- 중괄호 기호는 { } 는 명령을 통해서 검색한 파일의 이름이 들어간다
[cookie@cookie ~]$ find . -type f -name "b.log" -exec rm -rf {} \;
whereis
실행 파일을 검색하는 명령어
명령어 이름에 해당하는 실행파일, 소스, 매뉴얼을 찾아준다
( = whereis locates the binary, source and manual files for the specified
command names)
디렉토리 전체를 뒤지는 것이 아니라, $PATH 와 $MANPATH에서만 검색한다
[cookie@cookie ~]$ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
- /usr/bin/is
- ls 명령어의 실행파일(프로그램)
- /usr/share/man/man1/ls.1.gz
- man ls라고 쳤을 때 나오는 메뉴얼 정보