강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

find실무8편: 특정 파일타입의 파일들만 검색하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

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사용법에 대해서 알아보았다.

 

 

 

 잘 활용하면 꼭 필요할 때에 유용하게 사용될 것이다.

 

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,035 명
  • 현재 강좌수 :  35,791 개
  • 현재 접속자 :  170 명