[리눅스]리눅스에서 find 명령어를 이용하여 파일찾기 / find 옵션
리눅스에서 무언가를 찾기위해서는?! find 라는 명령어를 씁니다
가장 많이 쓰이는 형태로는 아래의 형식을 사용합니다
ㅇfind 명령어 기본 형식
find [디렉토리경로] -name [파일명]
ㅇfind 명령어로 원하는 파일(test.txt) 찾기
find / -name test.txt
*루트 디렉토리에서 / 이름이 test.txt인 파일을 찾는다
해당 명령어를 넣으면 위와같이 원하는 파일이 있는 위치를 알 수 있습니다
보통 위에서 쓰는 명령어가 가장 자주 쓰이는 명령어입니다.
ㅇfind 명령어 옵션
-name : 이름을 기준으로 ...
-perm : 퍼미션을 기준으로...
-gruop: 해당그룹 소유의 파일이나 디렉토리를 찾을때
-user : 해당 소유자의 파일이나 디렉토리를 찾을때
-atime n : n일 이전에 엑세스한 파일을 찾을때
-ctime n : n일 이전에 변경된 파일을 찾을때
-mtime n : n일 이전에 수정된 파일을 찾을때
-exec : 찾아진 파일등과 연계하여 명령을 내리게 하는 옵션
사용하기위해 마지막에 " \; "를 입력해야함.
-type : 찾고자 하는 파일이나, 디렉토리의 유형을 지정해 줄때
1) -type d : 디렉토리를 찾는다
2) -type f : 일반파일을 찾는다
3) -type l : 링크된 것을 찾는다.
4) -type b : 블록 파일을 찾는다.
5) -type c : 문자 파일( usb, serial port)을 찾는다.
6) -type p : 파이프인 특수 파일을 찾는다
7) -type s : 소켓파일을 찾는다.
-ok : -exec와 유사
-print : 출력을 화면으로...(생략가능)
뒤에 2>/dev/null 를 쓰면 접근 권한이 없는 파일이나 디렉토리에 접근시 나오는
리스트는 화면에 출력하지 않는다.
-ls : 상세히 출력
-size n : n블록 길이의 파일을 찾는다. +n은 n블록보다 큰파일, -n은 n블록도다 작은파일
nc는 n문자 길이의 파일..
-inum n : inode번호가 n인 파일을 찾을때
ㅇfind 명령어 사용 예제
- home/test 디렉토리에서 7일 이상이된 파일을 찾아 삭제하는 명령어.
find /home/test -ctime +7 \-exec rm -rf {} \;
- 여러개의 파일에서 특정 문자열을 바꾸기
find / -name *.txt -exec perl -pi -e s/찾을문자열/바꿀문자열/g {} ;
- 30분전꺼까지만 찾기
find . -cmin -30
- 파일 이름에 foobar 가 들어간 파일 찾기
find / -name foobar -print
- 특정 사용자 소유의 파일을 찾기
find / -user foobar -print | more
- 최근 하루동안에 변경된 파일을 찾기
find / -ctime -1 -a -type f | xargs ls -l | more
- 오래된 파일 찾기
find / -mtime +30 -print | more
- 최근 30일안에 접근하지 않은 파일과 디렉터리를 별도의 파일로 만들기
find / ! ) | xargs ls -l > not_access.txt
- 하위 디렉터리로 내려가지 않고 현재 디렉터리에서만 검색하기
find . -prune ...
- 퍼미션이 777 인 파일 찾기
find / -perm 777 -print | xargs ls -l | more
- others 에게 쓰기 권한이 있는 파일을 찾기
find / -perm -2 -print | xargs ls -l | more
- others 에게 쓰기 권한이 있는 파일을 찾아 쓰기 권한을 없애기
find / -perm -2 -print | xargs chmod o-w
또는
find / -perm -2 -exec chmod o-w {} ; -print | xargs ls -l | more
- 사용자이름과 그룹이름이 없는 파일 찾기
find / -print | more
- 빈 파일 찾기
find / -empty -print | more
또는
find / -size 0 -print | more
- 파일 크기가 100M 이상인 파일을 찾기
find / -size +102400k -print | xargs ls -hl
- 디렉터리만 찾기 find . -type d ...
- root 권한으로 실행되는 파일 찾기
find / -print | xargs ls -l | more
- 다른 파일시스템은 검색하지 않기
find / -xdev ...
- 파일 이름에 공백이 들어간 파일 찾기
find / -name * * -print
- 숨겨진 파일을 찾기
find / -name .* -print | more
- *.bak 파일을 찾아 지우기
find / -name *.bak -exec rm -rf {} \;
- *.bak 파일을 찾아 특정 디렉터리로 옮기기
mv `find . -name *.bak` /home/bak/
위에있는 예시만 아시면 find는 금방 사용하실 수 있을거에요
'프로그래밍' 카테고리의 다른 글
[안드로이드] SMS 수신하기 (1) | 2019.07.09 |
---|---|
[안드로이드] SMS 전송하기 (0) | 2019.07.09 |
<NiFi> CentOS 7에 NiFi 1.7.1 설치 및 login 기능 적용 (1) | 2019.04.16 |
<NiFi> CentOS 7에 OpenLDAP를 설치하는 방법 (0) | 2019.04.16 |