모든 운영 체제는 다양한 유형의 수천 개의 파일로 구성됩니다. 시스템 자체와 함께 제공되는 파일, 사용자 자신의 파일, 공유 파일 등이 있습니다. 때때로 우리는 하드 드라이브에서 특정 파일이 어디에 있는지 잊어버리는 경우가 많습니다. Microsoft의 WINDOWS 운영 체제에서 파일을 찾는 것은 매우 간단합니다. 바탕 화면에서 "시작" - "검색"을 클릭하면 로컬 하드 디스크, LAN 또는 인터넷에서도 다양한 방법으로 검색할 수 있습니다. 파일 및 문서.
하지만 Linux를 사용하는 사용자는 Linux에서 파일을 찾는 것이 참으로 귀찮은 일입니다. 결국, Linux에서는 하드 디스크에 있는 파일을 찾으려면 전용 "find" 명령을 사용해야 합니다. Linux의 파일 표현 형식은 매우 복잡합니다. WINDOWS 및 DOS의 통합 AAAAAAA.BBB 형식만큼 찾기가 쉽지 않습니다. WINDOWS에서는 찾고자 하는 파일의 이름이나 접미사를 찾기가 매우 쉽습니다. . Linux에서 파일을 찾는 명령은 일반적으로 "find" 명령입니다. "find" 명령은 Linux를 사용하고 관리하는 일상적인 작업에서 필요한 파일을 편리하게 찾는 데 도움이 됩니다. Linux 초보자의 경우 "find" 명령은 Linux 파일의 특성을 이해하고 학습하는 방법이기도 합니다. 리눅스 배포판이 많고 버전이 빨리 업그레이드되기 때문에 리눅스 책에는 특정 구성 파일의 위치가 나와 있는 경우가 많지만, 리눅스 초보자는 검색해도 찾을 수 없는 경우가 많다. 예를 들어 REDHAT Linux 7.O 및 REDHAT Linux 7.1에서는 일부 중요한 구성 파일이 있는 하드 디스크 위치와 파일 디렉터리가 많이 변경되었습니다. Linux 파일 에서 구성 파일 중 하나를 찾는 것은 매우 어렵습니다. 저자는 "find" 명령에 능숙하기 전에 이 문제로 어려움을 겪었습니다. 자, 이제 강력한 "find" 명령의 모든 사용법과 사용법을 자세히 소개하겠습니다.
파일명으로 검색하는 방법:
이 방법은 WINDOWS에서 파일을 검색하는 것만큼 이해하기 쉽습니다. 이 파일을 단일 폴더에 넣으면 일반적인 "ls" 명령을 사용하여 쉽게 찾을 수 있습니다. 그런 다음 "find" 명령을 사용하여 파일을 찾는 것은 결국 "find" "명령의 힘으로는 효과가 없습니다. 거기서 멈추지 마세요. 특정 파일의 파일 이름을 알고 있지만 파일이 어느 폴더에 있는지, 심지어 중첩된 폴더인지 모르는 경우. 예를 들어 시스템에서 httpd.conf 파일이 어느 디렉터리에 있는지 잊어버렸거나 파일이 시스템 어디에 있는지 모르는 경우 다음 명령을 사용할 수 있습니다.
find / -name httpd .conf
이 명령 구문은 이해하기 쉬운 것 같습니다. find 바로 뒤에 -name을 쓰면 시스템이 파일 이름에 따라 검색해야 함을 나타내고 마지막으로 대상 파일 이름 httpd.conf를 씁니다. 잠시 후 시스템 화면에 검색 결과 목록이 표시됩니다.
etc/httpd/conf/httpd.conf
이는 Linux에 있는 httpd.conf 파일의 전체 경로입니다. 체계. 검색이 성공했습니다.
위의 검색 명령을 입력한 후에도 시스템이 결과를 표시하지 않으면 시스템이 find/ -name httpd.conf 명령을 실행하지 않았다고 생각하지 마십시오. Apache 서버가 설치되어 있지 않을 수 있습니다. 이 경우 Apache 웹 서버를 설치한 다음 find / -name httpd.conf를 사용하여 이 구성 파일을 찾으십시오.
오류 없는 검색 기술:
Linux 시스템에서 "find" 명령은 대부분의 시스템 사용자가 사용할 수 있는 명령이며 ROOT 시스템 관리자의 전유물이 아닙니다. 그러나 일반 사용자는 "find" 명령을 사용할 때 이러한 문제에 직면할 수도 있습니다. 즉, Linux 시스템의 시스템 관리자 ROOT가 특정 파일 디렉터리를 액세스 거부 모드로 설정할 수 있습니다. 이런 방식으로 일반 사용자는 "find" 명령을 사용하여 이러한 디렉터리나 파일을 쿼리할 수 있는 권한이 없습니다. 일반 사용자가 "find" 명령을 사용하여 이러한 파일 디렉터리를 쿼리하면 "Permissiondenied(접근 금지)"라는 단어가 나타나는 경우가 많습니다. 시스템은 원하는 파일을 쿼리할 수 없습니다. 이러한 오류를 방지하기 위해 오류 메시지를 전송하여 파일을 찾으려는 방법을 사용합니다.
find / -name access_log 2>/dev/null
이 방법은 검색을 전송하는 것입니다. 특정 디렉터리에 오류 메시지가 표시됩니다. 시스템이 이 명령을 실행한 후 발견된 오류 정보는 stderrstream 2로 직접 전송됩니다. Access_log 2는 시스템이 오류 정보를 stderrstream 2로 보낼 것임을 나타냅니다. /dev/null은 비어 있거나 잘못되었음을 나타내는 특수 파일입니다. 쿼리된 오류 정보가 전송되고 다시 표시되지 않도록 합니다.
Linux 시스템에서 파일을 검색하는 경우에도 이러한 실질적인 문제가 발생합니다. 전체 하드 디스크에서 특정 파일을 검색하는 경우 이 시스템에서는 시간이 오래 걸립니다. 특히 대규모 Linux 시스템 및 대용량 하드 디스크의 경우 파일이 깊게 중첩된 디렉터리에 배치되면 시간이 오래 걸립니다. 이 파일이 큰 디렉토리에 저장되어 있다는 것을 알고 있다면 이 디렉토리에서 검색하는 것만으로도 많은 시간을 절약할 수 있습니다. 이 문제를 해결하려면 find /etc -name httpd.conf를 사용하십시오. 위 명령은 etc 디렉토리에 있는 httpd.conf 파일을 조회한다는 의미입니다. 다음은 함수 기호 "/"의 의미에 대한 또 다른 설명입니다. "find/"를 입력하면 Linux 시스템이 전체 ROOT 디렉터리에서 파일을 검색해야 함을 의미합니다. 전체 하드 디스크, "find/etc"는 etc 디렉토리에서만 파일 찾기를 의미합니다. "find/etc"는 etc 디렉토리에 있는 파일만 검색하는 것을 의미하므로 검색 속도가 훨씬 빠릅니다.
파일 이름 일부를 기준으로 검색하는 방법:
이 방법은 WINDOWS에서 알려진 파일 이름을 검색하는 것과 동일합니다. 그러나 Linux에서 파일 이름의 일부를 기반으로 파일을 검색하는 방법은 WINDOWS에서 유사한 검색 방법보다 훨씬 강력합니다. 예를 들어, 파일에 srm이라는 세 글자가 포함되어 있다는 것을 알고 있다면 시스템에서 이 세 글자를 포함하는 모든 파일을 찾을 수 있습니다.
find /etc -name '*srm* '
이 명령은 Linux 시스템이 전체 /etc 디렉토리에서 srm 세 글자가 포함된 모든 파일을 검색한다는 것을 나타냅니다. 예를 들어, absrmyz, tibc.srm 및 기타 정규화된 파일이 표시될 수 있습니다. 이 파일이 세 글자 srm으로 시작한다는 것을 알고 있다면 첫 번째 별표를 생략할 수도 있습니다. 명령은 다음과 같습니다.
find/etc -name 'srm*'
srmyz와 같은 파일만 검색됩니다.absrmyz 또는 absrm과 같은 파일은 요구 사항을 충족하지 않아 표시되지 않습니다. 이러한 방식으로 파일 찾기의 효율성과 안정성이 크게 향상됩니다.
파일 특성에 따른 쿼리 방법:
특정 파일의 크기, 수정 날짜, 기타 특성만 알고 있는 경우 "find" 명령을 사용하여 찾을 수도 있습니다. WINDOWS 시스템의 "검색"과 유사합니다. "기능은 기본적으로 동일합니다. Microsoft Search에서 Windows의 검색 길잡이를 사용하면 네트워크의 파일과 폴더, 프린터, 사용자 및 기타 컴퓨터를 더 쉽게 검색할 수 있습니다. 인터넷 검색도 더욱 쉬워집니다. 검색 길잡이에는 컴퓨터에 있는 모든 파일의 색인을 유지 관리하는 색인 서비스도 포함되어 있어 검색 속도가 빨라집니다. 검색 길잡이를 사용할 때 사용자는 여러 검색 기준을 지정할 수 있습니다. 예를 들어, 사용자는 이름, 유형, 크기별로 파일과 폴더를 검색할 수 있습니다. 사용자는 특정 텍스트가 포함된 파일을 검색할 수도 있습니다. Active Directory를 사용하는 경우 특정 이름이나 위치로 프린터를 검색할 수도 있습니다.
예를 들어 Linux 파일의 크기가 1,500바이트인 경우 다음 명령을 사용하여 find / -size 1500c를 쿼리할 수 있습니다. 문자 c는 찾을 파일의 크기를 나타냅니다. 바이트 단위입니다. 이 파일의 구체적인 크기조차 모르는 경우 Linux에서 퍼지 검색을 사용하여 문제를 해결할 수도 있습니다. 예를 들어 find/ -size +10000000c 명령을 입력하면 시스템이 루트 디렉터리에서 10000000바이트보다 큰 파일을 찾아 표시하도록 지정한다는 의미입니다. 명령에서 "+"는 시스템이 지정된 크기보다 큰 파일만 나열해야 함을 나타내고 "-"를 사용하면 시스템이 지정된 크기보다 작은 파일을 나열해야 함을 나타냅니다. 다음 목록은 Linux에서 다양한 "find" 명령을 사용한 후 시스템이 수행하는 검색 작업입니다. 이를 통해 Linux에서 "find" 명령을 사용하는 방법이 다양하다는 것을 쉽게 알 수 있습니다. " 명령은 파일을 찾기 위해 유연하게 사용됩니다. WINDOWS에서 검색 능력이 열악할 필요가 없습니다.
Find / -amin -10 # 지난 10분 동안 시스템에서 액세스한 파일 찾기
find / -atime -2 # 지난 48시간 동안 시스템에서 액세스한 파일 찾기
find / -empty # 시스템에서 빈 파일이나 폴더 찾기
Find / -group cat # 시스템에서 groupcat에 속한 파일 찾기
Find / -mmin -5 # 지난 5분 동안 수정된 파일 찾기 시스템 파일
찾기 / -mtime -1 #시스템에서 지난 24시간 동안 수정된 파일 찾기
찾기 / -nouser #시스템에서 유효하지 않은 사용자에게 속한 파일 찾기
찾기 / - user fred #시스템에서 사용자 FRED에 속한 파일 찾기
다음 목록은 find 명령으로 지정할 수 있는 파일의 특성을 검색하기 위한 몇 가지 조건입니다. 여기에 모든 검색 조건이 나열되어 있는 것은 아닙니다. Linux 관련 서적을 참조하면 모든 find 명령의 검색 기능을 알 수 있습니다.
-amin n
지난 N분 동안 시스템에서 액세스한 파일 찾기
-atime n
지난 n*24시간 동안 시스템에서 액세스한 파일 찾기
-cmin n
시스템에서 파일 찾기 지난 N분 동안 상태가 변경된 파일
-ctime n
시스템에서 지난 n*24시간 동안 상태가 변경된 파일 찾기
-empty
시스템에서 빈 파일을 찾거나, 빈 파일 디렉터리 또는 디렉터리에서 하위 디렉터리가 없는 폴더를 찾습니다.
-false
시스템에서 항상 잘못된 파일 찾기
-fstype 유형
다음과 같은 시스템 파일 찾기 예를 들어, ext2와 같이 파일의 그룹과 ID를 지정합니다.
찾기 명령의 제어 옵션에 대한 설명:
찾기 명령은 또한 사용자에게 제어할 수 있는 몇 가지 고유한 옵션을 제공합니다. 수색작전. 다음 표에는 find 명령의 가장 기본적이고 일반적으로 사용되는 제어 옵션과 사용법이 요약되어 있습니다.
옵션
사용법 설명
-daystart
오늘부터 24시간 이내에 시스템 파일을 테스트합니다. 사용법은 -amin
-length
깊이 수준 검색 프로세스를 사용합니다. 지정된 디렉터리의 파일 내용을 특정 수준으로 우선 검색
-follow
와일드카드 링크 방법을 따라 검색합니다. 또한, 와일드카드 링크 방법
-help 명령 요약 표시
-max깊이 레벨
내림차순 방식으로 특정 디렉터리 수준에서 검색
-mount
파일 시스템 디렉터리에서 검색하지 않음, 사용법은 - xdev.
-noleaf
UNIX가 아닌 파일 시스템에서 금지됨, MS- DOS 시스템에서 최적화된 검색, CD-ROM 파일 시스템
-version
버전 번호 인쇄
-follow 옵션을 사용한 후 find 명령은 이 옵션을 지정하지 않는 한 와일드카드 링크 방법을 따라 검색합니다. 그렇지 않으면 find 명령은 일반적으로 파일 검색에 대한 와일드카드 링크 방법을 무시합니다.
-maxlength 옵션의 기능은 find 명령이 특정 수준을 초과하는 파일을 검색하거나 너무 많은 디렉터리를 검색할 때 디렉터리의 파일을 내림차순으로 검색하지 못하도록 제한하는 것입니다. 이로 인해 검색 속도가 느려집니다. 속도가 느려지고 검색 시간이 너무 길어집니다. 예를 들어 현재 (.) 디렉토리의 기술 하위 디렉토리에서 fred라는 파일을 찾으려면
Find -maxlength 2 -name fred
명령을 사용할 수 있습니다. 이 fred 파일이 ./sub1/fred 디렉토리에 있으면 이 명령은 파일을 직접 찾고 검색에 성공하기 쉽습니다. 이 파일이 ./sub1/sub2/fred 디렉토리에 있으면 이 명령은 해당 파일을 찾을 수 없습니다. 디렉터리 내 find 명령에 대한 최대 쿼리 디렉터리 수준은 2이므로 2수준 디렉터리에서만 파일을 찾을 수 있습니다. 이것의 목적은 find 명령이 파일을 더 정확하게 찾을 수 있도록 하는 것입니다. 특정 파일이 있는 대략적인 파일 디렉토리 레벨을 이미 알고 있는 경우 -maxlength n을 추가하면 지정된 디렉토리에서 해당 파일을 빠르게 찾을 수 있습니다.
혼합 검색 방법을 사용하여 파일 찾기
find 명령은 혼합 검색 방법을 사용할 수 있습니다. 예를 들어 /tmp 디렉터리에서 100000000바이트보다 크고 수정된 파일을 찾으려는 경우입니다. 48시간 이내에 -and를 사용하여 두 검색 옵션을 하이브리드 검색에 연결할 수 있습니다.
find /tmp -size +10000000c -and -mtime +2
컴퓨터 언어를 공부해본 친구들은 다 아는 사실인데, and and or는 각각 "and"와 "or"를 나타내는 데 사용됩니다. .관계. 이는 Linux 시스템의 검색 명령에서도 흔히 볼 수 있습니다.
또 다른 예가 있습니다.
find / -user fred -or -user george
/tmp 디렉토리에서 두 사용자 fred 또는 george에 속한 파일을 찾는 것으로 해석할 수 있습니다.
find 명령에서 "not" 관계를 사용하여 /tmp 디렉토리에서 panda에 속하지 않는 모든 파일을 찾으려면 간단한
find /tmp를 사용하세요. user panda
이 명령으로 문제가 해결됩니다. 매우 간단합니다.
파일을 찾고 표시하는 방법
파일을 찾는 것이 우리의 목표입니다. 이제 LS 명령을 사용하여 파일을 찾으면 해당 파일의 자세한 정보와 속성을 알고 싶습니다. 파일 정보를 보는 것은 상당히 번거롭습니다. 이제 이 두 명령을 결합할 수도 있습니다.
/ -name "httpd.conf" -ls
찾기 시스템은 httpd.conf 파일을 찾은 후 즉시 httpd.conf 파일 정보를 화면에 표시합니다.
12063 34 -rw-r--r-- 1 root root 33545 Dec 30 15:36 /etc/httpd/conf/httpd.conf
다음 표는 일반적으로 사용되는 검색 파일 및 표시 내용입니다. 파일 정보의 매개변수 및 사용법
옵션
사용법 설명
-exec 명령
빈 파일을 포함한 파일의 전체 파일 이름을 인쇄합니다.
-fprintf 파일 형식
파일 형식을 인쇄합니다. 🎜> -ok 명령; > -printf format
파일 형식 인쇄
-ls
파일을 동일한 파일 형식으로 인쇄합니다.요약: 지금까지 우리는 find 명령을 사용하는 방법에 대해 많은 것을 배웠고 일반적으로 사용되는 많은 find 명령 옵션도 나열했습니다. Linux에서 find 명령의 사용을 마스터할 수 있다면 Linux 문서에서 find는 어려운 일이 아닙니다. 어느 하나.