RedHat Linux >> Fundamentals of the GNU/Linux
|
[목차] |
제3장 리눅스 명령어
10. 파일 찾기 - find dos에서 원하는 파일을 찾을 때 어떻게 했습니까? 필자의 경우에는 'dir' 명령어로 원하는 파일을 찾았습니다.
c:\>dir/w test.txt /s [enter]
이런 식으로 하면 c 드라이브에 있는 모든 디렉토리를 찾아서 test.txt라는 파일을 찾게 됩니다. 이러한 기능을 하는 명령어로 리눅스는 따로 'find'를 제공합니다. 이 명령어는 많이 사용하는 것이므로 그 사용법을 잘 알아두기 바랍니다.
먼저 일반적인 사용 방법부터 알아봅니다.
[root@leelab /root]# find / -name han* /etc/profile.d/hangul-init.csh /etc/profile.d/hangul-init.sh /etc/x11/wmconfig/hanterm /etc/han.cfg . /home/httpd/html/manual/handler.html /usr/bin/han [root@leelab /root]#
일단 제일 마지막에 붙은 아규먼트를 보니 전체적으로 어떤 의미인지는 알겠죠? 바로 'han'으로 시작되는 모든 파일을 찾는다는 의미입니다.
두 번째 아규먼트에 보면 '/' 으로 되어 있는 데 이것은 루트 디렉토리를 의미하는 것입니다. 즉 'han'으로 시작되는 파일을 루트 디렉토리부터 찾으라는 의미죠. 어떤 특별한 디렉토리 밑에 있는 파일을 찾고 자 한다면 그 디렉토리명을 이 두 번째 아규먼트에 지정하면 됩니다. 그러면 세 번째 아규먼트인 '-name'은 무엇을 의미할까요? 일단 앞에 '-'가 붙은 것을 보니 옵션일 거라는 생각이 드는군요. 바로 파일을 이름으로 찾겠다는 것을 의미하는 것입니다. 'find' 명령어로 파일을 찾을 때 이름으로 찾지 않고 다른 어떤 것으로 찾고자 한다면 다른 옵션을 붙여서 사용하면 됩니다. 그러면 '-name' 대신에 올 수 있는 다른 옵션에 대해 알아봅니다. 액세스된 시간이나 수정된 시간을 가지고 파일을 찾는 방법이 있습니다.
[root@leelab /root]# find /book -amin 10 /book/linux/chap3/chap3. bak [root@leelab /root]#
10분전에 마지막으로 액세스된 파일을 찾는 과정을 나타내고 있습니다. 조금 오래된 파일이라면 분으로 찾지 말고 시간으로 찾으면 됩니다.
[root@leelab /root]# find / -atime 1 /sbin/mailconf /sbin/mkdosfs /sbin/quotaoff . . /sbin/telinit /sbin/clock [root@leelab /root]#
24시간 전에 액세스된 파일을 찾고 있는 것입니다. 마지막 아규먼트로 '2'를 지정하면 이것은 48 시간전이 됩니다. 즉 단위가 하루라고 생각하면 됩니다.
이번에는 앞의 옵션과 비슷한 'c'로 시작하는 옵션에 대해 알아봅니다. 앞의 'a'로 시작하는 옵션은 액세스된 시간으로 파일을 찾았는데 사실 이 옵션은 잘 쓰이지 않습니다. 액세스된 시간은 크게 중요하지 않거든요. 우리가 찾으려는 파일은 대부분 수정된 시간을 이용해서 많이 찾습니다.
[root@leelab /root]# find / -cmin 5 /usr/hwpx/sys/hwphqf.lst /book/linux/chap3/chap3.hwp [root@leelab /root]#
5분전에 마지막으로 수정된 파일을 찾고 있는 과정을 나타내고 있습니다. 이것 역시 시간 단위로 찾는 방법도 있습니다.
[root@leelab /root]# find / -ctime 1 /var/catman/cat1/mv.1.gz /var/catman/cat1/find.1.gz /home [root@leelab /root]#
역시 의미는 24시간 전에 수정된 파일을 찾고자 하는 것입니다.
이번에는 마지막으로 아주 유용한 옵션 한 가지만 더 알아보겠습니다. 비어있는 파일이나 디렉토리를 찾는 옵션인데 한번 사용해 보기 바랍니다. 생각보다 비어있는 파일이나 디렉토리가 많을 것입니다.
[root@leelab /root]# find /home -empty /home/ftp/pub /home/samba . . [root@leelab /root]#
|
[목차] |