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

원하는 파일타입의 파일들 검색하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

원하는 파일타입의 파일들 검색하기

 





이번에는 우리가 원하는 위치에 있는 우리가 원하는 파일타입을 가진 파일만을 검색하는 방법을 보겠습니다. 

 

 

 

find명령어에서 파일타입을 지정하고자 할 때에는 다음과 같은 방법으로 지정합니다. 

 

 

 

 

 

        -type b : 블록장치파일(block special file)

        -type c : 문자장치파일(character special file)

       -type d : 디렉토리(directory)

        -type p : FIFO파일(first in first out)

        -type f : 일반파일(regular file)

        -type l : 심볼릭 링크파일(symbolic link file)

       -type s : 소켓파일(socket file)

 

, 리눅스에서 사용되는 파일들은 위와 같이 파일타입(종류)이라는 것이 있으며 특정 파일타입을 가진 파일을 찾고자 할 때에 위와 같이 지정하면 됩니다. 

 

 

 

이어지는 예들을 보십시오.

 

먼저, 블록장치파일을 검색한 예입니다. 

 

 

 

, /dev 내에 블록장치파일을 검색하였습니다. 

 

 

 

파일퍼미션 자리의 맨 앞부분에 보면 b라는 문자가 보일 것입니다. 

 

 

 

이것이 블록장치파일임을 의미하고 있습니다. 

 

 

 

 

 

[root@su250 ~]# find /dev -type b -exec ls -l {} \;

brw-r----- 1 root floppy 2, 28 2008-12-2302:08 /dev/fd0u1440

brw-rw---- 1 root floppy 2, 0 2008-12-2302:08 /dev/fd0

brw-rw---- 1 root disk 1, 1 2008-12-2302:08 /dev/ram1

brw-rw---- 1 root disk 1, 0 2008-12-2302:08 /dev/ram0

brw------- 1 root root 8, 5 2008-12-2302:08 /dev/root

brw-rw---- 1 root disk 8, 17 2008-12-2302:08 /dev/sdb1

brw-rw---- 1 root disk 8, 16 2008-12-2302:08 /dev/sdb

brw-rw---- 1 root disk 8, 5 2008-12-2302:08 /dev/sda5

brw-rw---- 1 root disk 8, 4 2008-12-2302:08 /dev/sda4

brw-rw---- 1 root disk 8, 3 2008-12-2302:08 /dev/sda3

brw-rw---- 1 root disk 8, 2 2008-12-2302:08 /dev/sda2

brw-rw---- 1 root disk 8, 1 2008-12-2302:08 /dev/sda1

brw-rw---- 1 root disk 8, 0 2008-12-2302:08 /dev/sda

brw-rw---- 1 root disk 11, 0 2008-12-2302:08 /dev/sr0

[root@su250 ~]#

 

다음 예는 /dev 내에 존재하는 문자장치파일을 검색한 예입니다. 

 

 

 

각 행의 앞부분이 c로 시작하고 있음을 확인하십시오.

 

[root@su250 ~]# find /dev -type c -exec ls -l {} \;

crw-rw---- 1 vcsa tty 7, 134 2008-12-2302:09 /dev/vcsa6

crw-rw---- 1 vcsa tty 7, 6 2008-12-2302:09 /dev/vcs6

crw-rw---- 1 vcsa tty 7, 130 2008-12-2302:09 /dev/vcsa2

crw-rw---- 1 vcsa tty 7, 2 2008-12-2302:09 /dev/vcs2

crw-rw---- 1 vcsa tty 7, 131 2008-12-2302:09 /dev/vcsa3

crw-rw---- 1 vcsa tty 7, 3 2008-12-2302:09 /dev/vcs3

crw-rw---- 1 vcsa tty 7, 133 2008-12-2302:09 /dev/vcsa5

crw-rw---- 1 vcsa tty 7, 5 2008-12-2302:09 /dev/vcs5

crw-rw---- 1 vcsa tty 7, 132 2008-12-2302:09 /dev/vcsa4

crw-rw---- 1 vcsa tty 7, 4 2008-12-2302:09 /dev/vcs4

crw-rw---- 1 root lp 99, 0 2008-12-2302:08 /dev/parport0

crw-rw---- 1 root root 14, 0 2008-12-2302:08 /dev/mixer

crw-rw---- 1 root root 14, 3 2008-12-2302:08 /dev/dsp

crw-rw---- 1 root root 14, 4 2008-12-2302:08 /dev/audio

crw-rw---- 1 root root 14, 12 2008-12-2302:08 /dev/adsp

crw-rw---- 1 root root 14, 9 2008-12-2302:08 /dev/dmmidi

[root@su250 ~]#

 

다음은 /etc 디렉토리내에 존재하는 디렉토리들을 확인한 것입니다.

 

[root@su250 ~]# 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@su250 ~]# find /home/sspark -type f -exec ls -l {} \;

-rw-r--r-- 1 sspark sspark 124 2008-10-2906:37 /home/sspark/.bashrc

-rw-r--r-- 1 sspark sspark 18 2008-10-2906:37 /home/sspark/.bash_logout

-rw-r--r-- 1 sspark sspark 176 2008-10-2906:37 /home/sspark/.bash_profile

-rw-r--r-- 1 root root 0 2008-12-2302:20 /home/sspark/begin

[root@su250 ~]#

 

그리고 다음은 /etc 디렉토리내에 존재하는 심볼릭 링크파일을 검색하는 예입니다. 

 

 

 

 

 

[root@su250 ~]# find /etc -type l -exec ls -l {} \;

[root@su250 ~]#

 

, 위의 예는 링크파일들을 찾는 예입니다. 

 

 

 

 링크파일은 시스템 최고관리자(root) 이외에는 잘 사용하지 않는 파일입니다. 

 

 

 

따라서 이런 링크파일이 목적한 용도 이외에 생성이 되어있는가를 확인하는 것 또한 매우 중요한 것입니다. 

 

 

 

아래의 예는 전체 시스템(/)을 대상으로 링크파일(l)을 찾아서(find) 보여달라(ls -l {})는 의미입니다. 

 

 

 

 

 

[root@su250 ~]# find / -type l -exec ls -l {} \;

lrwxrwxrwx 1 root root 11 2008-12-0122:16 /boot/grub/menu.lst -> ./grub.conf

lrwxrwxrwx 1 root root 3 2008-12-2302:08 /dev/floppy-fd0 -> fd0

lrwxrwxrwx 1 root root 3 2008-12-2302:08 /dev/floppy -> fd0

lrwxrwxrwx 1 root root 4 2008-12-2302:08 /dev/XOR -> null

lrwxrwxrwx 1 root root 4 2008-12-2302:08 /dev/ram -> ram1

lrwxrwxrwx 1 root root 4 2008-12-2302:08 /dev/ramdisk -> ram0

lrwxrwxrwx 1 root root 4 2008-12-2302:08 /dev/rtc -> rtc0

이하생략

 

, 위의 결과를 보시면 현재 시스템 내에서 사용되고 있는 모든 링크파일들이 출력되었음을 알 수 있습니다. 

 

 

 

 이렇게 검색된 링크파일이 정상적인 목적으로 사용되고 있는가 아니면 악의적인 목적으로 해킹된 링크파일인가를 확인하여 적절히 조치(삭제, 변경 등)를 하시기 바랍니다. 

 

 

 

 

 

그리고 다음은 /tmp 디렉토리내에 존재하는 소켓파일을 검색한 예입니다. 

 

 

 

 

 

[root@su250 ~]# find /tmp -type s -exec ls -l {} \;

[root@su250 ~]#

 

이상과 같이 find를 이용하여 다양한 파일타입을 지정하여 원하는 종류의 파일을 검색할 수 있습니다. 

 

 

 

 

 

 

 

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,039 명
  • 현재 강좌수 :  35,848 개
  • 현재 접속자 :  94 명