find실무8편: 특정 파일타입의 파일들만 검색하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,139 조회
- 0 추천
- 목록
본문
find실무8편: 특정 파일타입의 파일들만 검색하기
리눅스시스템에는 여러가지의 파일종류들이 있다.
링크파일이 있고, 소켓파일이 있고, 장치파일들이 있다.
따라서 이번에는 우리가 원하는 위치에 있는 우리가 원하는 파일타입을 가진 파일만을 검색하는 방법에 대해서 알아보자.
find명령어에서 우리가 찾고자하는 파일종류(타입)을 지정할 때에는 다음과 같은 방법으로 지정한다.
리눅스에서 사용되는 파일들은 위와 같이 파일타입(종류)이라는 것이 있으며 특정 파일타입을 가진 파일을 찾고자 할 때에 위와 같이 지정하면 된다.
이어지는 예들을 보자.
첫번째 예로서 블록장치파일을 검색한 예이다.
즉, /dev 내에 블록장치파일을 검색하였다.
파일퍼미션 자리의 맨 앞부분에 보면 b라는 문자가 보일 것이다.
이것이 블록장치파일임을 의미하고 있다.
[root@sulinux ~]# find /dev -type b -exec ls -l {} \; brw-r----- 1 root floppy 2, 28 2022-12-23 02:08 /dev/fd0u1440 brw-rw---- 1 root floppy 2, 0 2022-12-23 02:08 /dev/fd0 brw-rw---- 1 root disk 1, 1 2022-12-23 02:08 /dev/ram1 brw-rw---- 1 root disk 1, 0 2022-12-23 02:08 /dev/ram0 brw------- 1 root root 8, 5 2022-12-23 02:08 /dev/root brw-rw---- 1 root disk 8, 17 2022-12-23 02:08 /dev/sdb1 brw-rw---- 1 root disk 8, 16 2022-12-23 02:08 /dev/sdb brw-rw---- 1 root disk 8, 5 2022-12-23 02:08 /dev/sda5 brw-rw---- 1 root disk 8, 4 2022-12-23 02:08 /dev/sda4 brw-rw---- 1 root disk 8, 3 2022-12-23 02:08 /dev/sda3 brw-rw---- 1 root disk 8, 2 2022-12-23 02:08 /dev/sda2 brw-rw---- 1 root disk 8, 1 2022-12-23 02:08 /dev/sda1 brw-rw---- 1 root disk 8, 0 2022-12-23 02:08 /dev/sda brw-rw---- 1 root disk 11, 0 2022-12-23 02:08 /dev/sr0 [root@sulinux ~]# |
다음 예는 /dev 내에 존재하는 문자장치파일을 검색한 예이다.
각 행의 앞부분이 c로 시작하고 있음을 확인할 수 있다.
[root@sulinux ~]# find /dev -type c -exec ls -l {} \; crw-rw---- 1 vcsa tty 7, 134 2022-12-23 02:09 /dev/vcsa6 crw-rw---- 1 vcsa tty 7, 6 2022-12-23 02:09 /dev/vcs6 crw-rw---- 1 vcsa tty 7, 130 2022-12-23 02:09 /dev/vcsa2 crw-rw---- 1 vcsa tty 7, 2 2022-12-23 02:09 /dev/vcs2 crw-rw---- 1 vcsa tty 7, 131 2022-12-23 02:09 /dev/vcsa3 crw-rw---- 1 vcsa tty 7, 3 2022-12-23 02:09 /dev/vcs3 crw-rw---- 1 vcsa tty 7, 133 2022-12-23 02:09 /dev/vcsa5 crw-rw---- 1 vcsa tty 7, 5 2022-12-23 02:09 /dev/vcs5 crw-rw---- 1 vcsa tty 7, 132 2022-12-23 02:09 /dev/vcsa4 crw-rw---- 1 vcsa tty 7, 4 2022-12-23 02:09 /dev/vcs4 crw-rw---- 1 root lp 99, 0 2022-12-23 02:08 /dev/parport0 crw-rw---- 1 root root 14, 0 2022-12-23 02:08 /dev/mixer crw-rw---- 1 root root 14, 3 2022-12-23 02:08 /dev/dsp crw-rw---- 1 root root 14, 4 2022-12-23 02:08 /dev/audio crw-rw---- 1 root root 14, 12 2022-12-23 02:08 /dev/adsp crw-rw---- 1 root root 14, 9 2022-12-23 02:08 /dev/dmmidi [root@sulinux ~]# |
다음은 /etc 디렉토리내에 존재하는 디렉토리들을 확인한 것이다.
[root@sulinux ~]# find /etc -type d -print /etc /etc/pulse /etc/profile.d /etc/selinux /etc/selinux/targeted /etc/selinux/targeted/modules /etc/selinux/targeted/modules/active /etc/selinux/targeted/modules/active/modules /etc/selinux/targeted/policy /etc/selinux/targeted/contexts /etc/selinux/targeted/contexts/files /etc/selinux/targeted/contexts/users …이하생략 |
다음은 /home/sspark 디렉토리내에 존재하는 일반파일(regular file)만을 검색한 예이다.
[root@sulinux ~]# find /home/sspark -type f -exec ls -l {} \; -rw-r--r-- 1 sspark sspark 124 2022-10-29 06:37 /home/sspark/.bashrc -rw-r--r-- 1 sspark sspark 18 2022-10-29 06:37 /home/sspark/.bash_logout -rw-r--r-- 1 sspark sspark 176 2022-10-29 06:37 /home/sspark/.bash_profile -rw-r--r-- 1 root root 0 2022-12-23 02:20 /home/sspark/begin [root@sulinux ~]# |
그리고 다음은 /etc 디렉토리내에 존재하는 심볼릭 링크파일을 검색하는 예이다.
[root@sulinux ~]# find /etc -type l -exec ls -l {} \; [root@sulinux ~]# |
즉, 위의 예는 링크파일들을 찾는 예이다.
링크파일은 시스템 최고관리자(root) 이외에는 잘 사용하지 않는 파일이다.
따라서 이런 링크파일이 목적한 용도 이외에 생성이 되어있는가를 확인하는 것 또한 매우 중요하다.
아래의 예는 전체 시스템(/)을 대상으로 링크파일(l)을 찾아서(find) 보여달라(ls -l {})는 의미이다.
[root@sulinux ~]# find / -type l -exec ls -l {} \; lrwxrwxrwx 1 root root 11 2022-12-01 22:16 /boot/grub/menu.lst -> ./grub.conf lrwxrwxrwx 1 root root 3 2022-12-23 02:08 /dev/floppy-fd0 -> fd0 lrwxrwxrwx 1 root root 3 2022-12-23 02:08 /dev/floppy -> fd0 lrwxrwxrwx 1 root root 4 2022-12-23 02:08 /dev/XOR -> null lrwxrwxrwx 1 root root 4 2022-12-23 02:08 /dev/ram -> ram1 lrwxrwxrwx 1 root root 4 2022-12-23 02:08 /dev/ramdisk -> ram0 lrwxrwxrwx 1 root root 4 2022-12-23 02:08 /dev/rtc -> rtc0 …이하생략 |
즉, 위의 결과를 보시면 현재 시스템 내에서 사용되고 있는 모든 링크파일들이 출력되었음을 알 수 있다.
이렇게 검색된 링크파일이 정상적인 목적으로 사용되고 있는가 아니면 악의적인 목적으로 해킹된 링크파일인가를 확인하여 적절히 조치(삭제, 변경 등)를 하기 바란다.
그리고 다음은 /tmp 디렉토리내에 존재하는 소켓파일을 검색한 예이다.
[root@sulinux ~]# find /tmp -type s -exec ls -l {} \; [root@sulinux ~]# |
이상과 같이 find를 이용하여 다양한 파일타입(종류)을 지정하여 원하는 파일종류들만을 검색하는 find사용법에 대해서 알아보았다.
잘 활용하면 꼭 필요할 때에 유용하게 사용될 것이다.
관련자료
-
이전
-
다음