LINUX/생활코딩 강의 정리

[생활코딩 리눅스 강의 정리] 섹션 4. 디렉토리 구조와 파일 찾는 법

은재정 2022. 8. 23. 22:18

해당 글은 생활 코딩 이고잉님의 강의를 듣고 일부만을 정리한 글입니다.


디렉토리 구조

디렉토리는 데이터/실행할 프로그램을 정리정돈하는 수단으로 볼 수 있다. 

리눅스 디렉토리 구조

자세한 내용은 https://www.thegeekstuff.com/2010/09/linux-file-system-structure/를 참고하면 된다.

/usr 디렉토리 밑에는 bin, sbin, lib 디렉토리가 따로 존재한다. 기본적으로 운영체제 설치되어 번들 형식으로 사용자에게 제공되는 프로그램은 /bin, /sbin 디렉토리 밑에 존재하고 유저가 따로 설치하는 프로그램은 /usr/bin, /usr/sbin 디렉토리에 존재한다는 차이점이 있다. 또한 /home 디렉토리는 /usr 디렉토리에서 사용자의 파일을 저장하기 위해 분리된 디렉토리이다.

 

파일 찾는 법

파일은 데이터를 보관하거나, 실행 프로그램 저장하는 두 가지 목적이 있다.

 

locate

 

파일을 찾기 위해 가장 많이 쓰이는 명령이다.

# log로 끝나는 모든 파일 찾기
locate *.log

 

locate 명령은 파일을 찾을 때 모든 디렉토리를 뒤지지 않고 데이터베이스를 이용해서 파일을 찾기 때문에 속도가 빠르다.

sudo updatedb 명령을 통해 데이터베이스를 업데이트한다.

 

find

 

find는 직접 디렉토리를 뒤지면서 파일을 찾기 때문에 locate 보다 성능이 뒤쳐지지만 현재 상태를 가져올 수 있다는 장점이 있다.
https://www.tecmint.com/35-practical-examples-of-linux-find-command/ 해당 링크에 자세한 사용법들이 나와있다.

# root 디렉토리부터 다 뒤지기
find / *.log
# Permission denied 경우
sudo find / *.log
# 현재 디렉토리 하위 디렉토리만 검색
find . *.log
# 파일을 찾고 지우기
find . -type f -name "tecmint.txt" -exec rm -f {} \;

 

whereis

 

whereis는 실행 파일, 소스 파일, 매뉴얼 파일을 찾아준다. PATH, MANPATH에 등록된 디렉토리만을 대상으로 찾는다. PATH는 시스템 변수로, PATH에 등록된 디렉토리 밑에 있는 프로그램은 현재 워킹 디렉토리에 있는 것처럼 실행할 수 있다. 예를 들어 ls 명령을 입력했을때, 운영체제는 PATH에 등록된 디렉토리 밑에 ls 실행 프로그램이 있는지 차례대로 검색 후 실행한다.

 

비슷한 명령어로는 which가 있다.