상세 컨텐츠

본문 제목

[CentOS 8] 파일 검색 (find, which, whereis)

Linux

by mp.jamong 2020. 10. 13. 09:21

본문

 

윈도우즈 파일 검색은 검색창에서 검색어를 입력하여 원하는 파일 또는 폴더(디렉터리)를 찾을 수 있습니다. 리눅스도 GUI 환경에서 검색창에서 검색이 가능하지만, 대부분 CLI 환경에서 시스템 관리가 진행되다보니, 파일 검색 방법에 대해 익숙해야 원하는 파일이나 디렉터리를 찾을 수 있습니다.

 

본 포스트에서는 리눅스에서 자주 사용하는 파일 검색 명령어인 find, which, whereis 사용법에 대해 소개하고자 합니다. 사용법에 대해 이해하고 사용한다면, 일반 검색보다도 더 강력한 검색을 체험할 수 있습니다.

 

 

Contents | 파일 검색

Ⅰ. find 명령어 사용법

Ⅱ. which 명령어 사용법

Ⅲ. whereis 명령어 사용법

 

 

1. find 명령어 사용법

▷ 주어진 조건을 검색하여 파일을 찾음

 

▷ find [경로] [옵션] [작업]

 → 경로 : 검색하는 파일 또는 디렉터리의 상위 경로를 의미

 → 옵션 : name, user, newer, perm, size 등 검색 필터를 의미

 → 작업 : 검색된 파일 또는 디렉터리에 대해 수행 내용을 의미

 

▷ 옵션

 → -name : 지정된 이름의 파일을 찾는다

 → -user : user 소유의 파일을 찾는다

 → -type : 지정된 형식의 파일을 찾는다

      · 지정된 형식 : b - 블록파일, c - 문자, d - 디렉터리, f - 파일, l - 링크파일, s - 소켓)

 → -size[+/-]n[bckw] : 지정된 크기의 파일을 찾는다.

      · +n : n보다 크다

      · -n : n보다 작다

      · n : n이다

      · b : 512 byte

      · c : byte

      · k : kilobytes

      · w :2 byte

 

▷ 작업

 → -print : 표준출력으로 검색된 파일명을 출력

 → -exec 명령어 {} \ : 찾은 파일에 대해 지정된 명령을 실행

 → -ok 명령어 {} \ : 실행 여부를 사용자에게 확인한 후 명령을 실행

 

▷ 명령어 사용 예시

# /root 디렉터리 하위 파일 중 file_origin_02.txt 파일 검색
[root@localhost ~]# find /root -name file_origin_02.txt
/root/test3/file_origin_02.txt
/root/test3/tar_test/file_origin_02.txt


# /root 디렉터리 하위 파일 중 file_origin_.txt 가 포함된 파일 검색
[root@localhost ~]# find /root -name file_origin_*.txt
/root/test3/file_origin_01.txt
/root/test3/file_origin_02.txt
/root/test3/file_origin_03.txt
/root/test3/tar_test/file_origin_01.txt
/root/test3/tar_test/file_origin_02.txt
/root/test3/tar_test/file_origin_03.txt


# /root 디렉터리 하위 파일 중 file_origin_으로 시작하는 파일 검색
[root@localhost ~]# find /root -name file_origin_*
/root/test3/file_origin_01.tar.xz
/root/test3/file_origin_01.txt
/root/test3/file_origin_02.tar.gz
/root/test3/file_origin_02.txt
/root/test3/file_origin_03.tar.bz2
/root/test3/file_origin_03.txt
/root/test3/tar_test/file_origin_01.txt
/root/test3/tar_test/file_origin_02.txt
/root/test3/tar_test/file_origin_03.txt


# /home 디렉터리 하위 소유자가 'test02'인 파일 검색
[root@localhost ~]# find /home -user test02
/home/test02
/home/test02/.mozilla
/home/test02/.mozilla/extensions
/home/test02/.mozilla/plugins
/home/test02/.bash_logout
/home/test02/.bash_profile
/home/test02/.bashrc


# /root 디렉터리 하위에 허가권이 644인 파일 검색
[root@localhost ~]# find /root -perm 644
/root/test/f.txt
/root/test/b.txt
/root/test2/g.txt
/root/test2/d.txt
...


# /usr/bin 디렉터리 하위에 파일 크기가 10KB ~ 100KB 인 파일 검색
[root@localhost ~]# find /usr/bin -size +10k -size -100k
/usr/bin
/usr/bin/cmp
/usr/bin/celtdec051
/usr/bin/gencat
/usr/bin/getconf
/usr/bin/celtenc051
...


# 현재 디렉터리에 있는 모든 파일명 확인
[root@localhost test3]# find . -print
.
./file_origin.tar
./file_origin_01.tar.xz
./file_origin_01.txt
./file_origin_02.tar.gz
./file_origin_02.txt
./file_origin_03.tar.bz2
./file_origin_03.txt
./tar_test
./tar_test/file_origin_01.txt
./tar_test/file_origin_02.txt
./tar_test/file_origin_03.txt


# 현재 디렉터리에 있는 디렉터리 확인
[root@localhost test3]# find . -type d -print
.
./tar_test


# /root 디렉터리 하위 파일 크기가 0인 파일의 목록을 출력
[root@localhost ~]# find /root -size 0k -exec ls -l {} \;
-rw-r--r--. 1 root root 0 Sep 28 15:41 /root/test/f.txt
-rw-r--r--. 1 root root 0 Sep 28 15:36 /root/test/b.txt
-rw-r--r--. 1 root root 0 Sep 28 15:46 /root/test2/g.txt
--w-r-xr-x. 1 root root 0 Oct  6 12:05 /root/test.txt
-rw-r--r--. 1 root root 0 Oct 12 12:09 /root/test3/file_origin_01.txt
-rw-r--r--. 1 root root 0 Oct 12 12:09 /root/test3/file_origin_02.txt
-rw-r--r--. 1 root root 0 Oct 12 12:09 /root/test3/file_origin_03.txt
-rw-r--r--. 1 root root 0 Oct 12 12:09 /root/test3/tar_test/file_origin_01.txt
-rw-r--r--. 1 root root 0 Oct 12 12:09 /root/test3/tar_test/file_origin_02.txt
-rw-r--r--. 1 root root 0 Oct 12 12:09 /root/test3/tar_test/file_origin_03.txt
-rw-r--r--. 1 root root 0 Oct 13 08:46 /root/test4/test01.txt
-rw-r--r--. 1 root root 0 Oct 13 08:46 /root/test4/test02.txt
-rw-r--r--. 1 root root 0 Oct 13 08:46 /root/test4/test03.txt
-rw-r--r--. 1 root root 0 Oct 13 08:46 /root/test4/test04.txt
-rw-r--r--. 1 root root 0 Oct 13 08:47 /root/test4/test01.avi
-rw-r--r--. 1 root root 0 Oct 13 08:47 /root/test4/test02.avi
-rw-r--r--. 1 root root 0 Oct 13 08:44 /root/find.txt


# /root 디렉터리 하위 확장명 avi 파일 삭제
[root@localhost ~]# find /root -name *.avi -exec rm -f {} \;


# 지난 24시간 동안 변경된 /var/log 디렉터리 이하 파일 목록 저장
[root@localhost ~]# find /var/log -mtime -1 \! -type d -print > changelist.txt
[root@localhost ~]# cat changelist.txt
/var/log/lastlog
/var/log/wtmp
/var/log/audit/audit.log
/var/log/rhsm/rhsmcertd.log-20201012
/var/log/rhsm/rhsmcertd.log


# 최근 5분간 변경된 /var/log 디렉터리 이하 모든 파일 목록 저장
[root@localhost ~]# find /var/log -mmin -5 -print > changelist.txt
[root@localhost ~]# cat changelist.txt
/var/log/audit/audit.log
/var/log/messages

 

 

2. which 명령어 사용법

▷ PATH 환경 변수에 있는 디렉터리를 모두 검색하고 찾고자 하는 명령어의 전체 위치 경로를 출력

 

▷ which [옵션] [--] 파일명

 → 세부 옵션

      · -a : 모든 내용 출력

      · -i : 알리아스 설정 환경 출력

      · -v : 버전 정보 출력

 

▷ 명령어 사용 예시

# cat 명령어 전체 내용 검색
[root@localhost ~]# which cat
/usr/bin/cat


# cat 명령어 버전 정보 출력
[root@localhost ~]# which -v cat
GNU which v2.21, Copyright (C) 1999 - 2015 Carlo Wood.
GNU which comes with ABSOLUTELY NO WARRANTY;
This program is free software; your freedom to use, change
and distribute this program is protected by the GPL.

 

 

3. whereis 명령어 사용법

▷ 명령어의 절대 경로를 찾고, 실행 파일의 위치와 함께 소스, 설정 파일, 메뉴얼 페이지를 검색하여 출력

 

▷ whereis [옵션] 파일명

 → 세부 옵션

      · -b : 바이너리 파일만 찾는다

      · -m : 매뉴얼 섹션만 찾는다

      · -s : 소스만 찾는다

 

▷ 명령어 사용 예시

# cat 명령어 전체 내용 찾기
[root@localhost ~]# whereis cat
cat: /usr/bin/cat /usr/share/man/man1/cat.1.gz /usr/share/man/man1p/cat.1p.gz


# cat 명령어 바이너리 파일만 찾기
[root@localhost ~]# whereis -b cat
cat: /usr/bin/cat


# cat 명령어 매뉴얼 섹션만 찾기
[root@localhost ~]# whereis -m cat
cat: /usr/share/man/man1/cat.1.gz /usr/share/man/man1p/cat.1p.gz

 

 

▽ 같이 보면 더 좋은 블로그 글 

 

[CentOS 8] 파일 압축과 해제

윈도우즈에 비해 리눅스는 시스템 관리가 주로 CLI 기반으로 진행되다보니 많은 명령어에 익숙해져야 하는 어려움이 있습니다. 많이 사용하는 명령어 중 파일 압축과 해제에 대해 소개하고자 합

mpjamong.tistory.com

 

[CentOS 8] 리눅스 기본 명령어

이번 포스팅에서는 리눅스에서 가장 많이 사용하는 기본 명령어에 대해 소개하고자 합니다. 리눅스는 윈도우즈와 달리 그래픽 환경 보다는 CLI (Command Line Interface) 환경에서 시스템 작업 하는 방�

mpjamong.tistory.com

 

 

관련글 더보기

댓글 영역