>  기사  >  운영 및 유지보수  >  Linux에서 find가 지정된 하위 디렉토리를 검색하지 않는 이유는 무엇입니까?

Linux에서 find가 지정된 하위 디렉토리를 검색하지 않는 이유는 무엇입니까?

WBOY
WBOY원래의
2022-07-12 15:30:354503검색

Linux에서는 find 명령의 "-prune" 매개변수를 사용하여 파일을 검색할 때 지정된 하위 디렉터리를 검색하지 않도록 할 수 있습니다. find 명령은 지정된 디렉터리에서 파일을 찾는 데 사용됩니다. 매개변수는 "-prune"으로 설정됩니다. 필터링에서는 무시할 경로 매개변수가 검색된 경로 바로 뒤에 있어야 합니다. 그렇지 않으면 이 매개변수는 "찾을 수 없는 검색 경로-경로 하위 디렉터리 경로 찾기-prune"입니다. ..".

Linux에서 find가 지정된 하위 디렉토리를 검색하지 않는 이유는 무엇입니까?

이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.

Linux에서 find가 지정된 하위 디렉토리를 검색하지 않는 이유는 무엇입니까?

Linux find에서 검색할 때 때로는 특정 디렉토리를 무시하고 검색하지 않아야 하는 경우가 있습니다. -prune 매개변수를 사용하여 필터링할 수 있지만 주의해야 합니다. 검색 경로 바로 뒤에 있는 경로 매개변수는 무시됩니다. 그렇지 않으면 이 매개변수가 작동하지 않습니다.

예제는 다음과 같습니다.

다음은 /home/carryf 디렉터리의 모든 파일에 대해 지정된 검색이지만 /home/carryf/astetc 경로는 무시됩니다.

find /home/carryf -path "/home/carryf/astetc" -prune -o -type f -print

다음으로 검색하는 경우 파일 이름은 다음과 같습니다.

find /home/carryf -path "/home/carryf/astetc" -prune -o -type f -name "cdr_*.conf" -print

두 개 이상의 경로를 무시하려면 어떻게 해야 하나요?

find /home/carryf −path"/home/carryf/astetc"−o−path"/home/carryf/etc" -prune -o -type f  -print
find /home/carryf −path"/home/carryf/astetc"−o−path"/home/carryf/etc" -prune -o -type f  -name "cdr_*.conf" -print

앞과 뒤에 공백이 있다는 점에 유의하세요.

파일 내용을 찾으려면 다음 명령문으로 공백이 있는 디렉터리 문제를 해결할 수 있습니다.

find ./ -name "MySQL*" -print0  |xargs -0 grep "SELECT lead_id FROM vicidial_list where vendor_lead_code"

디렉토리에 공백이 없으면 다음 형식으로 실행할 수 있습니다.

find ./ -name "mysql*"  |xargs  grep "SELECT lead_id FROM vicidial_list where vendor_lead_code"

Expand Knowledge

Linux find 명령 지정된 디렉터리에서 파일을 검색하는 데 사용됩니다. 매개변수 앞의 모든 문자열은 검색할 디렉터리 이름으로 처리됩니다. 매개변수를 설정하지 않고 이 명령을 사용하면 find 명령은 현재 디렉토리에서 하위 디렉토리와 파일을 검색합니다. 그리고 발견된 모든 하위 디렉터리와 파일이 표시됩니다.

Syntax

find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;

매개변수 설명:

find는 다음 규칙에 따라 경로와 표현식을 결정합니다. 명령줄에서 - ( ), ! 앞의 첫 번째 부분은 경로이고 다음 부분은 표현식입니다. path가 빈 문자열이면 현재 경로가 사용됩니다. 표현식이 빈 문자열이면 -print가 기본 표현식으로 사용됩니다.

표현에는 20~30가지 옵션이 있으며, 여기서는 가장 일반적으로 사용되는 옵션만 소개합니다.

-mount, -xdev: 지정된 디렉터리와 동일한 파일 시스템의 파일만 확인하고 다른 파일 시스템의 파일은 나열하지 않습니다.

-amin n: 지난 n분 동안 읽은 파일

-새로운 파일: 파일보다 늦게 읽음 file

-atime n: 지난 n일 이내에 읽은 파일

-cmin n: 지난 n분 이내에 수정된 파일

-cnewer file: 파일 파일 업데이트된 파일

-ctime n: 지난 n일 동안 생성된 파일

-mtime n: 지난 n일 동안 수정된 파일

-empty: 빈 파일 -gid n 또는 -그룹 이름: gid Yes n 또는 그룹 이름은 name

-ipath p, -path p: 경로 이름이 p와 일치하는 파일, ipath는 대소문자

-name name, -iname name: 파일 이름이 name과 일치하는 파일을 무시합니다. iname은 대소문자

-size n을 무시합니다. 파일 크기는 n 단위이고, b는 512바이트의 블록을 나타내고, c는 문자 수를 나타내고, k는 킬로바이트를 나타내고, w는 2바이트입니다.

-type c: 파일 형식은 c입니다.

추천 학습: Linux 비디오 튜토리얼

위 내용은 Linux에서 find가 지정된 하위 디렉토리를 검색하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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