Linux find 명령 사용법 소결

4552 단어 Linuxshell
find 는 사용 빈도 가 비교적 높 은 명령 입 니 다.시스템 의 특정 디 렉 터 리 에서 특정한 특징 을 가 진 파일 을 자주 찾 습 니 다.
find 명령 의 형식: find [-path ..] -options [-print -exec -ok]
path: 찾 을 디 렉 터 리 경로 입 니 다.
~ 표시 $HOME 디렉토리
현재 디 렉 터 리
루트 디 렉 터 리
- print: 결 과 를 표준 출력 으로 출력 하 는 것 을 표시 합 니 다.
- exec: 일치 하 는 파일 에 대해 이 매개 변수 에 제 시 된 셸 명령 을 실행 합 니 다.command {}\; ,주의 {} 과\;간격 이 있다
- ok: - exec 와 같은 역할 을 합 니 다. 명령 을 실행 하기 전에 알림 을 주 고 실행 여 부 를 확인 하 는 것 과 차이 가 있 습 니 다.
options 에서 자주 사용 하 는 옵션 은 다음 과 같 습 니 다.
- name 이름 으로 찾기
- perm 설치 권한 찾기
- prune 현재 지정 한 디 렉 터 리 에서 찾 지 않 습 니 다.
- user 파일 소유자 찾기
- group 소속 그룹 에서 찾기
- nogroup 에서 유효 하지 않 은 그룹 파일 찾기
- nuser 유효한 소유자 가 없 는 파일 찾기
- type 파일 형식 으로 찾기
다음은 간단 한 예 를 통 해 find 의 일반적인 용법 을 소개 합 니 다.
1. 이름 으로 찾기
현재 디 렉 터 리 와 하위 디 렉 터 리 에서 대문자 로 시작 하 는 txt 파일 을 찾 습 니 다.
[root@localhost ~]# find . -name '[A-Z]*.txt' -print

/etc 및 하위 디 렉 터 리 에서 host 시작 파일 찾기
[root@localhost ~]# find /etc -name 'host*' -print 

$HOME 디 렉 터 리 와 하위 디 렉 터 리 에서 모든 파일 찾기
[root@localhost ~]# find ~ -name '*' -print

현재 디 렉 터 리 및 하위 디 렉 터 리 에서 out 시작 이 아 닌 txt 파일 을 찾 습 니 다.
[root@localhost .code]# find . -name "out*" -prune -o -name "*.txt" -print  

2. 디 렉 터 리 로 찾기
현재 디 렉 터 리 aa 를 제외 한 하위 디 렉 터 리 에서 txt 파일 검색
[root@localhost .code]# find . -path "./aa" -prune -o -name "*.txt" -print

현재 디 렉 터 리 및 aa 와 bb 를 제외 한 하위 디 렉 터 리 에서 txt 파일 찾기
[root@localhost .code]# find . \( -path "./aa" -o -path "./bb" \) -prune -o -name "*.txt" -print   

현재 디 렉 터 리 에서 하위 디 렉 터 리 에서 txt 파일 찾기
[root@localhost .code]# find .  ! -name "." -type d -prune -o -type f -name "*.txt" -print

3. 권한 으로 찾기
현재 디 렉 터 리 및 하위 디 렉 터 리 에서 읽 기와 쓰기 실행 권한 이 있 는 다른 파일 을 찾 습 니 다.
[root@localhost ~]# find . -perm 755 -print

4. 유형 별로 찾기
현재 디 렉 터 리 와 하위 디 렉 터 리 에서 심 볼 릭 링크 파일 찾기
[root@localhost .code]# find . -type l -print

5. 소속 주 및 소속 조
소유자 가 ww 인 파일 찾기
[root@localhost .code]# find / -user www -type f -print

소유자 가 삭 제 된 파일 찾기
[root@localhost .code]# find /  -nouser -type f -print 

찾다
그룹 mysql 파일
[root@localhost .code]# find /  -group mysql -type f  -print

사용자 그룹 이 삭 제 된 파일 찾기
[root@localhost .code]# find /  -nogroup -type f  -print   

6. 시간 에 따라 찾기
이틀 동안 변 경 된 파일 찾기
[root@localhost .code]# find . -mtime -2 -type f -print 

이틀 전에 변 경 된 파일 찾기
[root@localhost .code]# find . -mtime +2 -type f -print

하루 동안 방문 한 파일 찾기
[root@localhost .code]# find . -atime -1 -type f -print 

하루 전에 방문 한 파일 찾기
[root@localhost .code]# find . -atime +1 -type f -print 

하루 동안 상태 가 바 뀐 파일 찾기
[root@localhost .code]# find . -ctime -1 -type f -print 

하루 전에 상태 가 바 뀐 파일 찾기
[root@localhost .code]# find . -ctime +1 -type f -print

10 분 전에 상태 가 바 뀐 파일 찾기
[root@localhost .code]# find . -cmin +10 -type f -print	

7. 문서 별로 신 구
aa. txt 보다 새로운 파일 찾기
[root@localhost .code]# find . -newer "aa.txt"  -type f -print 

aa. txt 보다 오래된 파일 찾기
[root@localhost .code]# find . ! -newer "aa.txt"  -type f -print  

aa. txt 보다 새 롭 고 bb. txt 보다 오래된 파일 찾기
[root@localhost .code]# find . -newer 'aa.txt' ! -newer 'bb.txt' -type f -print 

8. 크기 로 찾기
1M 이 넘 는 파일 찾기
[root@localhost .code]# find / -size +1M -type f -print  

6 바이트 파일 찾기
[root@localhost .code]# find . -size 6c -print

32k 이하 파일 찾기
[root@localhost .code]# find . -size -32k -print

9. 명령 수행
del. txt 를 찾 아 삭제 합 니 다. 삭제 전 알림 확인
[root@localhost .code]# find . -name 'del.txt' -ok rm {} \;

aa. txt 를 찾 아 aa. txt. bak 로 백업 합 니 다.
[root@localhost .code]# find . -name 'aa.txt' -exec cp {} {}.bak \; 

aa. txt 압축 파일 을 aa. txt. tar. gz 로 압축 하고 aa. txt 를 삭제 합 니 다.
find . -name "aa.txt" -type f -exec tar -zcvf {}.tar.gz {} \; -exec rm -rf {} \; > /dev/null

좋은 웹페이지 즐겨찾기