잠시만 기다려 주세요


 
HOME   |  여기는?   |  바다물때표   |  여러가지 팁 (775)  |  추천 및 재미 (15)  |  자료실 (18)  |  끄적거림 (443)  |  시나리오 (757)  |  드라마 대본 (248)  |  

2019년 06월 20일
입을 닫고 버티는 것부터 시작해라. - 바다아이
 

    리눅스 데스크탑

리눅스 데스크탑 - find 명령 사용법
이 름 : 바다아이   |   조회수 : 1781         짧은 주소 : https://www.bada-ie.com/su/?371523105822
find 명령어는 파일 시스템에서 주어진 조건으로 파일을 찾는다.

사용법을 살펴보자.


find 대상디렉토리 검색 조건 처리 방법

대상 디렉토리 : 찾기를 시작할 디렉토리를 지정한다.
검색 조건 : 찾을 조건을 지정한다.
-name filename
파일 이름으로 찾는다.
-atime +n
access time 이 n일 이전인 파일을 찾는다.
-atime -n
access time이 n일 이내인 파일을 찾는다.
-mtime +n
n일 이전에 변경된 파일을 찾는다.
-mtime -n
n일 이내에 변경된 파일을 찾는다.
-perm nnn
파일 권한이 nnn인 파일을 찾는다.
-type x
파일 타입이 x인 파일들을 찾는다.
-size n
사이즈가 n이상인 파일들을 찾는다.
-links n
링크된 개수가 n인 파일들을 찾는다.
-user username
user이름으로 찾는다.
-group groupname
group 이름으로 찾는다.

처리방법 : 찾은 파일을 어떻게 할 것인지를 지정한다.
-print
찾은 파일의 절대 경로명을 화면에 출력한다.
-exec cmd {}; 
찾은 파일들에 대해 cmd 명령어를 실행한다.

 

find [찾을 디렉토리경로] [찾기옵션] [찾은후행할 작업]

[찾을 디렉토리경로]에는 다음과 같은 것들이 있다.

· : 현재 디렉토리이하

/ : 루트디렉토리이하(파일시스템전체)

~ID : 특정ID의 홈디렉토리이하

[찾기옵션]에는 다음과 같은 것들이 있다.

  • empty : 비어있는 파일
  • gid n : 특정 gid를 갖는 파일(n : 특정 gid)
  • group gname : 특정 group에 속한 파일(gname : group명)
  • name : 지정한 형식을 갖는 파일이름
  • newer : 특정 파일 이후에 생성된 파일
  • perm : 특정 허가모드를 가지고 있는 파일
  • uid n : 특정 uid를 갖는 파일(n : 특정 uid)
  • used n : 최근에 n일 이후에 변경된 파일(n : 일수)
  • user : 특정파일을 소유하고 있는 소유자의 파일

[찾은후 행할 작업]에는 다음과 같은 것들이 있다.

  • print : 가장많이 쓰는 옵션으로 찾은 파일을 보여준다.
  • exec : 찾은 파일들에 대해 특정명령을 수행한다.
 

그럼, 사용예를 들어 보겠습니다.

[root@ciss9 /]# find . -uid 504 -print

./home/sspark

./home/sspark/.Xdefaults

./home/sspark/.bash_logout

./home/sspark/.bash_profile

./home/sspark/.bashrc

위의 예는 현재디렉토리(.)에서부터 uid가 504인 사용자의 파일을 찾아서 보여달라는 것입니다.(-print)

[root@ciss9 /]# find ~sspark -name *.shtml -print

./home/sspark/public_html/sample.shtml

./home/sspark/public_html/testpass/sample.shtml

./home/sspark/public_html/testdir/sample.shtml

위의 예는 sspark이라는 사용자의 소유로된 파일중 shtml로 끝나는 파일을 찾아서 보여달라는 것입니다.

[root@ciss9 /root]# find ~sspark -name *.doc -exec rm -f {} \;

위의 예는 sspark이라는 사용자의 홈디렉토리(~sspark)이하에 존재하는 doc로 끝나는(*.doc) 파일을 찾아서 묻지말고(-f) 지워(rm)버리라는 명령어입니다.

이 명령어는 웹호스팅사용자에게 보다도 서버관리자에게 더욱 유용한 명령어로서 서버관리를 하다보면 어떤 파일이 어디에 위치하고 있는지 찾아야 할 때가 많습니다. 이런 경우에 매우 유용하게 사용됩니다.




예를 들어보자.
$ find /user4 -name test* -print

/user4 아래에서 파일이름이 test로 시작하는 모든 파일을 찾아서 화면에
보여준다.

$ cd /
$ find . -name ping -print

root 디렉토리 밑에서 파일이름이 ping인 파일을 찾아 절대 경로명을 화면에
출력한다.

$ cd /
$ find /usr -name *.c -print

/usr 밑에 이름이 .c로 끝나는 모든 파일들을 찾아 경로명을 보여준다.

$ cd /
$ find $home -name who.txt -print

home 디렉토리 아래에 who.txt라는 파일을 찾아 경로명을 보여준다.

$ cd /
$ find . -type d -print

파일 타입이 d인 파일을 찾아 경로명을 화면에 출력한다.

$ cd /
$ find /dev -type c -print

/dev디렉토리 아래에서 파일 타입이 c인 파일을 찾아 경로명을 보여 준다.

$ cd /
$ find . -perm 700 -print

파일 권한이 700인 파일을 찾아준다.

$ cd /
$ find . \ ( -perm 400 -o -perm 200 ) -print

파일 권한이 400인 파일과 200인 파일을 찾아준다.
(주의 : "\"의 앞뒤에 space 가 반드시 있어야 한다.)

$ cd /
$ find . -size +1024 -print

파일의 블럭 크기가 1024 이상인 파일을 찾아준다.

$ cd /
$ find . -name core -size +2048 -print

파일 이름이 core이고 크기가 2048블럭 이상인 파일을 찾아준다.

$ cd /
$ find . -user unix01 -print

파일 소유자가 unix01인 파일을 찾아준다.

$ cd /
$ find . -group unix -print

사용자그룹이 unix인 파일을 찾아준다.

$ cd /
$ find . -atime +30 -print

30일 이전에 억세스되었던 파일을 찾는다.

$ cd /
$ find . -mtime -7 -print

7일 이내에 수정된 적이 있는 파일을 찾는다.

$ cd /
$ find . -name core -exec ls -l {} \;

이름이 core인 파일을 찾아서 ls -l 한다.

$ cd /
$ find . -name \*.c -atime +30 -exec ls -l {} \;

30일 이전에 억세스된 파일 중 *.c를 찾아 ls -l 한다.

$ cd /
$ find . -name core -exec rm -i {} \;

현재 디렉토리 밑에서 이름이 core인 파일을 찾아 지운다(지우기 전에 정말
지울 지를 물어본다.)

grep와 함께 사용한 find명령어 strcpy 문자열을 포함한 현재디렉토리 아래의 *c파일
grep strcpy `find ./ -name *c`
 

8. 최상위 root에서 파일 찾기
find /
home directory 밑에서 찾기
find ~ -name sample
find ~ -name 'file*'
home directory에서 파일명에 file이 들어가면서 타입이 f(일반파일인)경우
find ~ -name 'file*' -a -type f
특정 디렉토리에서 사용자 unix05가 만든 파일 찾기
find /data2/unix -user unix05

9. core
실행하다가 오류가 있는 파일 core
(ex. sleep 20) ctrl+\ 강제종료하면 core 파일이 생성됨
실행하다가 종료되어도 생김 (cat으로 열수 없음(개발자가 debugger로만 확인할 수 있음, 파일 크기가 굉장히 큼)

core파일 찾기
find ~ -name core
core파일 삭제
find ~ -name core -exec rm {} \;
HDD 용량 줄이기
find / -name core -exec rm {} \;

10. passwd 파일을 찾을 때 뜨는 2>(오류메시지)를 /dev/null로 보냄 -오류메시지 안 보임
find / -name passwd 2> /dev/null
ls -i passwd (passwd 파일의 inode찾기)
find / -inum 108235 2> /dev/null (inode가 같은 것을 찾음)

11. 최근 3일 사이에 마지막 수정되고 파일타입은 일반타입인 로그파일(/var/adm에 있음) 찾기
find /var/adm -mtime -3 -a -type f

12. /etc 디렉토리에서 일반파일 중 파일의 크기가 4096 byte 이하인 파일 찾기 (1block = 512byte)
find /etc -size -8 -a -type f
find /etc -size -1 -a -type f 2> /dev/null 512바이트 이하 파일 찾기 (오류메시지는 /dev/null로 보내기)

13. etc + k 이전에 입력했던 내용
| more 내용을 페이지별로 보여주기 (많은 내용일 경우)

 

find ~ -name '*.sql' -exec grep -il 'linkcomp' {} \;


출처 : http://jobdahan.net/server_linux/1498195
 

| |


      1 page / 6 page
번 호 카테고리 제 목 이름 조회수
173 리눅스 데스크탑 바다아이 75
172 리눅스 데스크탑 Compiling nVidia 304.137 on Ubuntu 18.04 바다아이 72
171 리눅스 데스크탑 lightdm , , Lightdm not starting on boot ?? 바다아이 57
170 리눅스 데스크탑 thunderbird , 바다아이 58
169 리눅스 데스크탑 usb, cdrom grub iso ... 바다아이 101
168 리눅스 데스크탑 usb, cdrom grub iso ... 바다아이 91
167 리눅스 데스크탑 dd , 바다아이 111
166 리눅스 데스크탑 , dd if=/dev/zero, . low format 바다아이 292
165 리눅스 데스크탑 freebsd ufs , linux ufs mount 바다아이 388
164 리눅스 데스크탑 Arch on WSL, archlinux libQt5Core.so.5 not found 바다아이 322
163 리눅스 데스크탑 , .... input text ... font 바다아이 393
162 리눅스 데스크탑 ... 바다아이 367
161 리눅스 데스크탑 , , .. gparted 바다아이 504
160 리눅스 데스크탑 ssh .... ssh .. 바다아이 452
159 리눅스 데스크탑 thunderbird imap , , , .. 바다아이 520
158 리눅스 데스크탑 QT GTK+ WxWidgets, gui 3... golang qt, golang gtk, golang WxWidgets 바다아이 633
157 리눅스 데스크탑 debtap , deb . 바다아이 630
156 리눅스 데스크탑 16.04 - GUI CLI 바다아이 598
155 리눅스 데스크탑 , ... 바다아이 526
154 리눅스 데스크탑 zip, rar ... 바다아이 613
153 리눅스 데스크탑 , , centos 바다아이 1675
152 리눅스 데스크탑 , , , , chage , aging 바다아이 708
151 리눅스 데스크탑 /etc/shadow ! !!, * , lock , . 바다아이 646
150 리눅스 데스크탑 tar, gzip, gz, bzip2, bz2, zip, unzip, compress, xz .... 바다아이 724
149 리눅스 데스크탑 ico , icoutils 바다아이 657
148 리눅스 데스크탑 archlinux , mirror 바다아이 621
147 리눅스 데스크탑 Kernel modules 바다아이 703
146 리눅스 데스크탑 archlinux dkms ... kernel modules 바다아이 620
145 리눅스 데스크탑 archlinux ... kernel compile 바다아이 646
144 리눅스 데스크탑 Find , iconv 바다아이 674
| |






Copyright ⓒ 2001.12. bada-ie.com. All rights reserved.
이 사이트는 리눅스에서 firefox 기준으로 작성되었습니다. 기타 브라우저에서는 다르게 보일 수 있습니다.
[ FreeBSD + GoLang + PostgreSQL ]
서버위치 : New Jersey  실행시간 : 0.04064
to webmaster... gogo sea. gogo sea.