php教程 PHP开发 Linux에서 find 명령 사용법

Linux에서 find 명령 사용법

Dec 14, 2016 pm 04:50 PM

Linux의 find 명령은 디렉토리 구조에서 파일을 검색하고 지정된 작업을 수행합니다. Linux의 find 명령은 꽤 많은 검색 조건을 제공하며 매우 강력합니다. find에는 강력한 기능이 있기 때문에 많은 옵션도 있으며 대부분은 시간을 들여 이해할 가치가 있습니다. 시스템에 NFS(네트워크 파일 시스템)가 포함되어 있더라도 해당 권한이 있는 한 find 명령은 파일 시스템에서도 유효합니다. 리소스를 많이 소모하는 find 명령을 실행할 때, 많은 사람들은 대규모 파일 시스템을 탐색하는 데 오랜 시간이 걸릴 수 있기 때문에 백그라운드에서 실행하는 경향이 있습니다(여기서는 30G 바이트 이상의 파일 시스템을 나타냅니다).

1. 명령 형식:

find pathname -options [-print -exec -ok ...]

2. 명령 기능:

은 파일 트리에서 파일을 검색하고 해당 처리를 수행하는 데 사용됩니다

3. 명령 매개변수:

pathname: find 명령으로 검색된 디렉터리 경로입니다. 예를 들어, 현재 디렉터리를 나타내려면 .을 사용하고 시스템 루트 디렉터리를 나타내려면 .
-print: find 명령은 일치하는 파일을 표준 출력으로 출력합니다.
-exec: find 명령은 일치하는 파일에서 이 매개변수에 의해 제공된 쉘 명령을 실행합니다. 해당 명령은 'command' { } ; 형식입니다. { }와; 사이의 공백에 주의하세요.
-ok: 각 명령을 실행하기 전에 사용자에게 실행 여부를 확인하는 프롬프트가 표시됩니다. .

4. 명령 옵션:

-name 파일 이름으로 파일을 검색합니다.
-perm 파일 권한에 따라 파일을 찾습니다. -user 소유자에 따라 파일을 검색합니다.
-group 파일이 속한 그룹에 따라 파일을 찾습니다.
-mtime -n +n 변경 시간에 따라 파일을 검색합니다. - n은 파일 변경 시간이 지금부터 n일 이내임을 의미하고, +n은 파일 변경 시간이 지금부터 n일 전임을 의미합니다. find 명령에는 -atime 및 -ctime 옵션도 있지만 -m time 옵션과 동일합니다.
-nogroup 파일이 속한 유효한 그룹이 없는 파일, 즉 파일이 속한 그룹이 /etc/groups에 존재하지 않는 파일을 찾습니다.
-nouser 유효한 소유자가 없는 파일을 검색합니다. 즉, 파일 소유자가 /etc/passwd에 존재하지 않습니다.
-newer file1 !file2 변경 시간이 file1보다 최신이지만 file2보다 오래된 파일을 찾습니다.
-type 다음과 같은 특정 유형의 파일을 찾습니다.
b - 장치 파일을 차단합니다.
d - 디렉토리.
c - 캐릭터 장치 파일.
p - 파이프 파일.
l - 심볼릭 링크 파일.
f - 일반 파일.
-size n: [c] 파일 길이가 n 블록인 파일을 찾습니다. c를 사용하면 파일 길이는 바이트 단위입니다. -깊이: 파일을 검색할 때 먼저 현재 디렉터리에서 파일을 검색한 다음 해당 하위 디렉터리에서 검색합니다.
-fstype: 특정 유형의 파일 시스템에 있는 파일을 찾습니다. 이러한 파일 시스템 유형은 일반적으로 구성 파일 /etc/fstab에서 찾을 수 있습니다. 이 구성 파일에는 이 시스템의 파일 시스템에 대한 정보가 포함되어 있습니다.
-mount: 파일 검색 시 파일 시스템 마운트 지점을 넘지 마세요.
-follow: find 명령이 심볼릭 링크 파일을 발견하면 링크가 가리키는 파일을 따릅니다.
-cpio: 일치하는 파일에 대해 cpio 명령을 사용하여 해당 파일을 테이프 장치에 백업합니다.

또한 다음 세 가지의 차이점은 다음과 같습니다.

-amin n 시스템에서 최근 N분 동안 액세스한 파일을 찾습니다.

-atime n 마지막으로 액세스한 파일을 찾습니다. n*24시간 동안 시스템에서
-cmin n 시스템에서 지난 N분 동안 파일 상태가 변경된 파일을 찾습니다.
-ctime n 지난 n*24시간 동안 파일 상태가 변경된 파일을 찾습니다. 시스템에서
-mmin n 시스템에서 지난 N분 동안 파일 상태가 변경된 파일을 찾습니다. 변경된 파일 데이터가 있는 파일
-mtime n 지난 n*24시간 동안 변경된 파일 데이터가 있는 파일을 찾습니다. 시스템

5. 사용 예:

예 1: 지정된 시간 내에 수정된 파일 찾기

명령:

find -atime -2

출력:

[root@peidachang ~]# find -atime -2
.
./logs/monitor
./.bashrc
./.bash_profile
./.bash_history
로그인 후 복사
지침:

48시간 이내에 수정된 파일 찾기

예 2: 키워드를 기준으로 검색

명령:

find . log"

출력:

[root@localhost test]# find . -name "*.log" 
./log_link.log
./log2014.log
./test4/log3-2.log
./test4/log3-3.log
./test4/log3-1.log
./log2013.log
./log2012.log
./log.log
./test5/log5-2.log
./test5/log5-3.log
./test5/log.log
./test5/log5-1.log
./test5/test3/log3-2.log
./test5/test3/log3-3.log
./test5/test3/log3-1.log
./test3/log3-2.log
./test3/log3-3.log
./test3/log3-1.log
로그인 후 복사
설명:

현재 디렉터리에서 .log로 끝나는 파일을 찾습니다. ". "현재 디렉터리를 나타냅니다

예 3: 디렉터리 또는 파일의 권한에 따라 파일 찾기

명령:

find /opt/soft/test/ - perm 777

출력:

[root@localhost test]# find /opt/soft/test/ -perm 777
/opt/soft/test/log_link.log
/opt/soft/test/test4
/opt/soft/test/test5/test3
/opt/soft/test/test3
로그인 후 복사
지침:

/opt/soft/test/ 디렉토리에서 권한이 777인 파일을 찾습니다.

예 4 : 유형별 찾기

명령:

find . -type f -name "*.log"

출력:

[root@localhost test]# find . -type f -name "*.log"
./log2014.log
./test4/log3-2.log
./test4/log3-3.log
./test4/log3-1.log
./log2013.log
./log2012.log
./log.log
./test5/log5-2.log
./test5/log5-3.log
./test5/log.log
./test5/log5-1.log
./test5/test3/log3-2.log
./test5/test3/log3-3.log
./test5/test3/log3-1.log
./test3/log3-2.log
./test3/log3-3.log
./test3/log3-1.log
[root@localhost test]#
로그인 후 복사
설명:

현재 디렉토리와 .log로 끝나는 일반 파일 찾기

예 5: 현재 디렉토리를 모두 찾아서 정렬

명령:

find . d | sort

출력:

[root@localhost test]# find . -type d | sort
.
./scf
./scf/bin
./scf/doc
./scf/lib
./scf/service
./scf/service/deploy
./scf/service/deploy/info
./scf/service/deploy/product
./test3
./test4
./test5
./test5/test3
[root@localhost test]#
로그인 후 복사
예 6: 크기별로 파일 찾기

명령:

find . 🎜>

출력:

설명:
[root@localhost test]# find . -size +1000c -print
.
./test4
./scf
./scf/lib
./scf/service
./scf/service/deploy
./scf/service/deploy/product
./scf/service/deploy/info
./scf/doc
./scf/bin
./log2012.log
./test5
./test5/test3
./test3
[root@localhost test]#
로그인 후 복사

현재 디렉터리에서 1K보다 큰 파일 찾기

1. Linux에서 find의 일반적인 사용 예

·find path -option [ -print ] [ -exec -ok command ] {} ;
#-print 찾은 파일을 표준 출력으로 출력
#-exec command {} --- -- 찾은 파일에 대해 명령 작업을 실행합니다. {}와 사이에 공백이 있습니다.
#-ok는 -exec와 동일하지만 작업 전에 사용자에게 문의해야 합니다========== == ========================================= -name filename # 이름이 지정된 파일 찾기 filename
-perm                         #실행 권한으로 검색                                                       ~     ​​​​​ #파일 변경 시간에 따라 파일 검색, -n은 n일 이내, +n은 n일 전을 의미
-atime -n +n #검색 파일 접근 시간별 GIN: 0px">-perm #실행 권한별 검색
- 사용자 사용자 이름 #파일 소유자별 검색
-group groupname #그룹별 검색
-mtime -n +n #파일 검색 파일 변경 시간 기준으로 -n은 n일 이내, +n은 n일 이내를 의미합니다. 과거에는 -atime -n +N #파일을 찾기 위한 파일 접근 시간에 따라, -N은 N일 이내를 의미하고, +n Finger
-Ctime -n +N #파일생성시간에 따라 파일을 찾는데, -n은 n일 이내를 의미하고, +n은 n일 전을 의미한다. 메인 파일, 즉 파일의 소유자가 하는 일 /etc/passwd에 존재하지 않음
-newer f1 !f2 파일 찾기, -n은 n일 이내를 의미, +n은 n일 전을 의미
-ctime -n +n #파일을 찾기 위해 파일 생성, -N은 N일 이내,+n손가락 n일 전을 나타냅니다.
-Nogramp #유효한 소속 그룹이 없는 파일, 즉 해당 파일의 파일 그룹이 /etc/group에 존재하지 않는 파일을 찾습니다. > -NOUSER #🎜 🎜 🎜 🎜 🎜 즉, 파일의 소유자가/etc/passwd에 저장되어 있지 않습니다. -B/D/C/P/L/F #체크는 블록 장비, 디렉토리, 캐릭터 장비입니다. , 파이프라인, 심볼릭 링크, 일반 파일
-size n [c] #검사 길이는 n [또는 n 자입니다. 페스티벌의 파일 -Depth # 검색하려면 하위 디렉토리를 먼저 입력한 후 찾으세요. 디렉토리
-fstype #은 F1보다 변경 시간을 확인하지만 이전 파일
-mount #파일이 스패닝 파일 시스템 마운트 지점
을 확인하지 않는 경우.-follow               #심볼릭 링크 파일이 나타나면 링크가 가리키는 파일을 따라갑니다
-cpio                                                                                     # 디렉터리 무시== ===================== ============================= " [A-Z]*" -pri26nbsp # 일치하는 파일에 대해 cpio 명령을 사용하고 다시 되돌립니다.
-대문자로 시작하는 파일 정리
$find /etc -name "host*" -print # 호스트로 시작하는 파일 확인
$find -name "[a-z][ a-z][0--9][0 --9].txt" -print # 소문자 2개와 숫자 2개로 시작하는 txt 파일 확인
$find . -perm 755 -print
$find . -perm -007 -exec ls -l {} ; #모든 사용자가 읽고 쓰고 실행할 수 있는 파일을 확인합니다. -perm 777
$find -type d usr/include -name - exec grep AF_INEF6 {} ; grep은 하위 디렉터리를 재귀적으로 검색할 수 없으므로 find와 함께 사용할 수 있습니다. /usr/include의 모든 하위 디렉터리에 있는 .h 파일에서 문자열 AF_INEF6
$find를 찾습니다. -type l -print $find . -size +1000000c -print # 길이가 1Mb보다 큰 파일 검색
$ find .-Size 100C -PRINT # 길이가 100C인 파일 확인
$ Find. -Size +10 -PRINT # 10개(1 = 512바이트) 길이 확인 $ CD /
$ find etc home apps -length -print | cpio -ivcdC65536 -o /dev/rmt0
$find /etc -name "passwd*" -exec grep "cnscn" {} #cnscn 사용자가 있는지 확인
$ find . -name "yao*" | xargs 파일
$find . -name "yao*" | chmod o-w =============== ========================= ====== find -name april* 현재 디렉토리에서 april로 시작하는 파일 찾기
find - name april* fprint file 현재 디렉터리에서 april로 시작하는 파일을 찾아 결과를 file에 출력합니다.
find -name ap* -o -name may* ap로 시작하는 파일을 찾거나 may
find /mnt -name tom .txt -ftype vfat /mnt vfat file
에서 tom.txt라는 이름과 파일 시스템 유형을 찾습니다.find /mnt -name t.txt ! -ftype vfat /mnt에서 tom.txt라는 파일을 찾고 파일 시스템 유형이 vfat가 아닙니다.
find /tmp -name wa* -type l /tmp 파일에서 이름을 찾으세요. wa로 시작하고 심볼릭 링크 유형인
find /home -mtime -2 /home에서 지난 이틀 동안 변경된 파일 확인
find /home -atime -1 -atime -1 파일 확인 1일 이내에 액세스한 파일
find /home -mmin +60 /home에서 60분 전에 변경된 파일 찾기
find /home -amin +30 30분 전에 액세스한 파일 찾기
find /home -newer tmp.txt /home에서 업데이트 시간이 tmp.txt보다 최근인 파일 또는 디렉토리를 검색합니다.
find /home -anewer tmp.txt 디렉토리
find /home -used -2 ​​​​목록 파일 또는 디렉토리가 수정된 후 2일 이내에 액세스한 파일 또는 디렉토리
find /home -user cnscn /home 디렉토리에서 사용자 cnscn에 속한 파일 또는 디렉토리 나열
find /home - uid +501 -uid 사용자 식별 코드가 501보다 큰 /home 디렉토리의 파일 또는 디렉토리 나열
find /home -group cnscn 그룹이 cnscn 디렉토리인 /home의 파일 또는 디렉토리 나열 찾기 / Home -Gid 501 /home 내부 그룹 ID의 파일 또는 디렉토리 나열
/HOME -NOUSER 찾기 /Home, 로컬 사용자에 속하지 않는 파일 또는 디렉토리 나열
/Home -nogroup 찾기 파일 또는 디렉토리 나열 로컬 그룹에 속하지 않는 /home에서
find /home -name tmp.txt -maxlength 4 /home에 tmp.txt를 나열합니다. 검색의 최대 깊이는 3단계입니다.
find / home -name tmp.txt -minlength 3 레벨 2에서 검색
find /home -empty 크기가 0인 파일 또는 빈 디렉터리 찾기
find /home -size +512k 512k보다 큰 파일 확인
find /home - size -512k 512k보다 작은 파일 찾기
find /home -links +2 2보다 큰 하드 링크가 있는 파일 또는 디렉토리 찾기
find /home -perm 0700 권한이 700인 파일 또는 디렉토리 검색
find /tmp -name tmp.txt -exec cat {} ;
find /tmp -name tmp.txt -ok rm {} ; find / -amin -10 # 시스템에서 지난 10분 동안 액세스한 파일 찾기
find / -atime -2 # 지난 48시간 동안 액세스한 파일 찾기 in the system Files
find / -empty # 시스템에 비어 있는 파일이나 폴더 찾기
find / -group cat # 시스템에서 groupcat에 속한 파일 찾기
find / -mmin -5 # 찾기 in system 시스템에서 지난 5분 동안 수정된 파일
find / -mtime -1 # 시스템에서 지난 24시간 동안 수정된 파일 찾기 >find / -user fred # 다음에 속한 파일 찾기 시스템의 사용자 FRED

현재 디렉터리의 모든 일반 파일 확인
--- ----------- -------------------------- ----------- --- # find . -type f -exec ls -l {} ;
-rw-r--r-- 1 루트 루트 34928 2003-02-25 /conf/httpd.conf
-rw -r--r-- 1 루트 루트 12959 2003-02-25 ./conf/magic
-rw-r--r-- 1 루트 루트 180 2003- 02-25 ./conf.d/README
현재 디렉터리의 모든 일반 파일을 확인하고 -ex e c 옵션에서 ls -l 명령을 사용하여 나열합니다.
========== =========== ============================
/logs 디렉토리에서 변경 시간을 찾아 5일이 지난 파일을 삭제하세요.
$ 로그 찾기 -type f -mtime +5 -exec -ok rm {}
=============== =========== =====================
당일 수정된 파일 조회
[root@book class ]# find ./ -mtime -1 -type f -exec ls -l {} ;
================================== ===========
파일을 쿼리하고 표시할지 묻습니다
[root@book class]# find ./ -mtime -1 - type f -ok ls -l {} ;< ls ... ./classDB.inc.php > ? y
-rw-r--r-- 1 cnscn :22 ./classDB.inc.php
root@book class]# find ./ -mtime -1 -type f -ok ls -l {}
< ls ... ./classDB.n
[root@ 책 수업]# ============================================== ===
쿼리하고 처리를 위해 awk에 넘겨주세요
[root@book class]# who | awk '{print $1"t"$2}'
cnscn pts/0 ===== =============================================
아크 ---grep---sed [root@book class]# df -k | awk '{print $1}' | grep -v 'none' | s"//dev/ //g"
파일 시스템
sda2
sda1
[root@book class]# df -k | awk '{print $1}' | grep -v 'none'
파일 시스템
/dev/sda2
/dev/sda1


1) /tmp에서 모든 *.h를 찾고, 이 파일에서 "SYSCALL_VECTOR"를 검색하고, 마지막으로 "SYSCALL_VECTOR"가 포함된 모든 파일 이름을 인쇄합니다. A) find /tmp -name "*.h" | xargs -n50 grep SYSCALL_VECTOR
B) grep SYSCALL_VECTOR /tmp/*.h | cut -d':' -f1| uniq > 파일 이름
C) find /tmp -name "*.h" -exec grep "SYSCALL_VECTOR" {} ; -print
2)find / -name 파일명 -exec rm -rf {} ;
find / -name 파일명 -ok rm -rf {}
3) 예를 들어, 3M 파일보다 큰 파일:
find . -size +3000k -exec ls -ld {}
4) 찾기를 다른 위치로 복사
find *.c -exec cp '{}' /tmp ';' 특수 파일이 있는 경우 cpio를 사용하거나 다음 구문을 사용할 수 있습니다.
find dir -name filename -print | cpio -pdv newdir
6) 찾기 2004-11-30 16:36 :파일이 37에 변경되었습니다
# A=`find ./ -name "*php"` | ls -l --full-time $A 2>/dev/null | grep "2004-11-30 16 :36 :37

2. Linux에서의 find 명령 사용법

1. 기본 사용법:
find / -name 파일 이름 find ver1.d ver2.d -name '*. -print ver1.d, ver2.d *.c 파일을 찾아 인쇄합니다. -type d -print 현재 디렉터리부터 검색하고, 찾은 후 경로명을 인쇄합니다.
2. 검색하지 않고 검색합니다. 오류:
find / -name access_log 2 >/dev/null
3. 크기별 검색:
find / -size 1500c(크기가 1,500바이트인 파일 찾기, c는 단어 섹션을 의미함)
find / -size +1500c(1,500바이트보다 큰 파일 찾기, +는 더 큼을 의미)
find / -size +1500c(1,500바이트보다 작은 파일 찾기, -보다 작음을 의미)
4.
find / -amin n 지난 n 분
find / -atime n 지난 n 일
find / -cmin n 지난 n 분 상태 변경
find / -ctime n last n 일 후 상태 변경
5. 기타:
find / -빈 파일, 빈 폴더, 하위 디렉터리가 없는 폴더
find / -false 시스템에서 항상 잘못된 파일 찾기
find / -fstype type 존재하는 파일 찾기 ext2 유형과 같은 지정된 파일 시스템에서
find / -gid n 그룹 ID가 n인 파일
find / -group gname 그룹 이름이 gname
find / -length n인 파일에서 먼저 파일 내용 검색 특정 레벨에서 지정된 디렉토리
찾기 / -max깊이 레벨 특정 레벨 디렉토리에서 내림차순으로 검색
6. 논리
-and 조건 및 -or 조건 또는
문자열 찾기
찾기 -name '*.html' -exec grep 'mailto:'{}


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)