Linux에서 find를 사용하여 검색하기 찾기 및 찾기를 사용하여 Linux 서버에서 파일 찾기 Linux는 다음을 포함하지 않는 파일을 찾습니다.

Habr 커뮤니티 전체에 안녕하세요.
이것은 나의 첫 번째 게시물이며 마지막이 아니길 바랍니다. 그러므로, 본문의 온갖 단점, 버그, 약간의 묽음은 불가피하니, 엄밀히 판단하지 마시길 바랍니다 :)
저는 "초보자를 위한 콘솔"이라는 주제로 이 글을 쓰게 되었습니다. , 내 생각에는 ISVir이 긴급한 주제를 제기한 곳입니다. 즉, 가상의 매우 복잡함으로 인해 겁을 먹지 않고 접근 가능한 언어로 콘솔에 대해 신규 이민자에게 알리는 방법입니다.

나는 ISVir의 패리티를 없애지 않을 것입니다. 실제 사용가장 기본적인 몇 가지 "일상" 유틸리티가 없으면 콘솔에서 작업하는 것이 불가능합니다.

그래서 우리가 가진 것은:

찾다- 파일을 검색합니다. 파일, 디렉터리, 심볼릭 링크 및 기타 파일 개체를 검색할 수 있습니다. find 다음과 같은 다양한 검색 옵션을 지정할 수 있습니다.

  • 마스크(이름)로 검색
  • 검색 중첩 깊이 제어
  • 특정 파일 형식(디렉토리, 심볼릭 링크, 소켓) 검색
  • 파일 생성/수정 시간으로 검색
  • 파일의 크기(범위 내에서 범위까지)를 설정할 수 있습니다.
  • 발견된 각 파일에 대해 작업 수행
마나 찾기에서 다른 옵션과 매개변수에 대해 읽을 수 있습니다.

따라서 즉시 - 지난 24시간 동안 변경된 /etc/ 디렉토리의 모든 파일을 검색하십시오.

$find /etc/ -type f -mtime -1

우리가 쓴 내용을 살펴보겠습니다.

첫 번째 매개변수는 항상 검색할 시작 디렉터리입니다.
옵션 -유형매개변수 포함 에프말한다 찾다, 일반 파일만 검색하면 됩니다.
옵션 -m시간매개변수 포함 -1 나타내다 찾다지난 24시간 동안 변경된 파일을 찾아야 합니다.
"-" ~ 전에 1 범위의 상한을 설정합니다. 즉, “지난 24시간 동안 변경된 모든 것”

우리가 표시한 경우 "+" ~ 전에 1 , 저것 찾다 1970년 1월 1일부터 어제(하루 이상 전)까지 변경된 모든 파일을 찾습니다.
수식어 없이 숫자만 넣어서 정확한 날짜를 지정할 수도 있습니다.

발견된 파일에 대해 작업을 수행합니다.
옵션 -exec발견된 각 파일에 대해 실행될 명령이 포함된 행을 허용합니다.
명령에 전달된 매개변수는 다음과 같이 표시됩니다. {}
줄은 " \; " 문자로 끝나야 합니다.

예를 살펴보겠습니다:
* /tmp 디렉토리에서 지난달에 변경된 모든 파일을 찾아 해당 디렉토리에 복사합니다.
/tmp/백업/

$find /tmp -type f -mtime -30 -exec cp () /tmp/backup \;

* 디렉토리에서 마지막 날에 변경된 이름 로그가 있는 모든 디렉토리를 (재귀적으로) 삭제합니다.
/var/www
$find /var/www -type d -mtime 0 -name 로그 -exec sudo rm -fr () \;

매개변수 옵션으로 -유형검색 전용 디렉터리를 나타냅니다.
옵션 -이름이름으로 검색합니다.
이런 방식으로 파일을 삭제하는 것은 최적이 아닙니다(느림).
삭제를 위해 find에는 훨씬 더 빠른 내장 옵션인 -delete가 있습니다.

유틸리티를 고려해보자 .
파일 처리를 위해 설계된 프로그래밍 언어입니다. 그것의 목적
개발 - 처리와 관련된 많은 문제의 공식화 및 해결을 촉진합니다. 텍스트 정보. 사실은, 콘솔에서 사용할 수 있는 유틸리티입니다.
분명한 이유로 여기서는 awk 코드를 작성하는 기술을 고려하지 않을 것입니다. 우리에게 중요한 한 가지 기술에 대해서만 설명하겠습니다.

먼저 awk는 STDIN에서 데이터를 가져올 수 있습니다. $echo "테스트"|awk ...
둘째, awk는 콘솔에 한 줄짜리 코드를 작성할 때 효과적입니다. 매개변수로 제공된 코드를 실행합니다.


awk는 입력 스트림을 필드로 분할하고 해당 필드를 형태의 변수$1,$2,..$N
기본적으로 필드 구분 기호는 공백이지만 옵션을 사용하면 -F"_delimiter_"이는 재정의될 수 있습니다.
$head -4 /etc/passwd
루트:x:0:0:루트:/루트:/bin/bash
데몬:x:1:1:데몬:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh

$cat /etc/passwd|awk -F":" "($1 인쇄)"
뿌리
악마
큰 상자

예를 들어, /var/www 디렉토리에 여러 사이트가 있습니다. 각 사이트마다 Apache 로그가 기록되는 로그 디렉터리가 있습니다.(이 사이트의 경우) 이제 우리는 이러한 로그의 총 볼륨을 확인하고 100Mb보다 큰 모든 로그를 찾으려고 합니다.

1. 대용량 로그 검색:

$find /var/www -type f -name "access.log*" -size +100M
/var/www/site1/logs/access.log
/var/www/site2/logs/access.log.1.gz

2. 총 로그 볼륨을 계산합니다.

/var/www/ 찾기 -type f -name "access.log*" -exec du -k () \;|awk "(s+=$1)END(print s)"
5071604


그러니 두려워하지 마세요. 지금 바로 모든 것을 설명하겠습니다 :)

Find는 마스크(access.log*)로 모든 파일을 검색하고 각각에 대해 명령을 실행합니다. .
파일 크기를 인쇄합니다. 옵션 -케이킬로바이트 단위로 출력됩니다.
그런 다음 프로세서가 시작됩니다 , 단순히 문자열(숫자)의 첫 번째 필드를 변수로 합산합니다. 에스그리고 변수의 값을 화면에 표시합니다.

또 다른 예: 시스템에서 사용자에게 속한 모든 파일과 디렉터리를 찾아보겠습니다. 테스트1그리고 총 부피를 계산해 보세요.

#find / -user test1 -exec du -sm () \;|awk "(s+=$1)END(print s)"

저것들. 여기서 옵션을 사용하면 -사용자 find 사용자 test1에 속한 파일을 검색하고 각 파일/디렉토리에 대해 크기를 계산합니다(du 명령).
그런 다음 awk는 컨베이어를 통해 이 데이터를 수신하고 위에서 수행한 것처럼 해당 합계를 Kb 단위로 계산합니다.

좋아요. 오늘은 이 정도면 충분할 것 같아요.
게시물이 꽤 컸고 습관이 아닌 것으로 나타났습니다. :)

내 목표는 단순히 find와 awk를 사용하는 것에 대해 이야기하는 것이 아니라 구체적으로 예제를 제공하는 것이었음을 바로 말씀드리고 싶습니다. 실용적인 응용 프로그램실제 상황에서.
글이 마음에 드신다면 계속 이 방향으로 글을 쓰겠습니다.

시간 내 주셔서 감사합니다.

리눅스는 매우 강력하고 유용한 명령파일 검색 - 명령 찾다. 그녀는 큰 금액그러나 파일 검색 기능은 주로 구문으로 인해 초보자에게 어려움을 야기하는 경우가 있습니다.

find 명령을 사용하는 간단한 예

먼저 find 명령을 사용하여 컴퓨터에서 config라는 파일을 검색하는 간단한 예를 살펴보겠습니다. 검색해보겠습니다 구성 파일, 루트 디렉터리 / 에서 시작합니다. 이렇게 하려면 충분한 권한을 갖도록 명령을 루트로 실행해야 합니다. 그렇지 않으면 "권한 거부됨" 메시지가 표시됩니다. 그럼 다음 명령을 실행해 봅시다:

찾기 / -이름 구성 -인쇄

이 명령은 다음을 의미합니다. / 디렉토리(find 명령의 첫 번째 매개변수)에서 시작하여 config(-name config)라는 파일을 검색하고 파일 이름을 화면에 인쇄합니다(-print 인수). 검색은 재귀적입니다. 즉, 검색 시 모든 하위 디렉터리가 검색됩니다. 보시다시피 모든 것이 간단합니다. 이제 명령의 구문을 살펴보고 주요 인수에 대한 개요를 살펴보겠습니다.

명령 구문 찾기

참조 매뉴얼에서 찾을 수 있는 find 명령의 일반 구문은 그다지 간단하지 않을 수 있으므로 좀 더 읽기 쉬운 구문을 제공하겠습니다.

find [경로] [옵션] [검색 기준] [파일에 대한 작업]

검색 경로는 절대 또는 상대 경로이거나 공백으로 구분된 경로 목록일 수 있습니다.

옵션

찾기 명령 옵션은 "-" 문자로 시작하고 그 뒤에 옵션 이름이 나열됩니다. 주요 옵션을 살펴 보겠습니다.

검색 조건

find 명령에는 여러 검색 기준(테스트라고도 함)이 있을 수 있습니다. 각 기준은 true 또는 false 를 반환하는 특정 테스트 조건을 나타냅니다. 이는 프로그래밍의 if 문의 조건과 비교할 수 있습니다. find 명령은 각 파일을 처리하면서 각 기준을 차례로 확인하고 다음 기준이 false 를 반환하면 find 명령은 다음 파일로 이동합니다. find 명령에는 상당히 많은 기준이 있으므로 그중 몇 가지만 고려하겠습니다.

-atime NN일 전에 파일에 마지막으로 액세스했습니다.
-m시간 N최종 수정됨파일은 N일 전이었습니다.
-이름 패턴경로를 지정하지 않은 파일 이름(이름 템플릿)입니다. 패턴을 항상 따옴표로 묶는 것이 좋습니다.
-최신 other_file파일이 other_file보다 나중에 수정되었습니다.
-크기 [±] N파일 크기는 N 블록입니다. +N이 지정되면 파일 크기는 N보다 크고, -N은 더 작습니다. N 뒤의 문자는 블록 크기를 나타냅니다. b - 512바이트, c - 바이트, w - 2바이트, k - 킬로바이트, M - 메가바이트, G - 기가바이트.
-C형파일 형식 C. C에 가장 일반적으로 사용되는 값: d - 디렉터리, f - 파일.
-사용자 사용자_이름파일은 UserName이라는 사용자가 소유하고 있습니다.

기준을 사용하여 find 명령을 사용하는 예

현재 디렉토리에서 이름이 "~" 문자로 시작하는 일반 파일(디렉토리 아님)을 찾습니다.

찾다. -유형 f -이름 "~*" -인쇄

file.bak 보다 최근에 수정된 파일을 현재 디렉터리에서 찾습니다.

찾다. -최신 파일.bak -type f -print

연산자

연산자를 사용하여 기준을 결합할 수 있습니다. 다음은 우선순위가 높은 연산자입니다.

일반적으로 연산자를 사용하는 경우 우선순위에 따라 기준을 확인합니다. 괄호를 사용하여 순서를 변경할 수 있습니다. 괄호는 백슬래시를 사용하여 구분해야 합니다.

연산자를 사용하여 find 명령을 사용하는 예

현재 디렉터리에서 "~" 기호 또는 "temp"로 시작하고 디렉터리가 아닌 일반 파일(-유형 f)인 파일을 찾습니다.

찾다. \(-name "~*" -또는 -name "temp*" \) -type f -print

현재 디렉터리에서(하위 디렉터리 처리 없이 - -maxdeph 1) 600MB보다 크고 1GB 미만(-size)의 일반 파일(-file f) 또는 이름이 ".mpeg"(-name)로 끝나는 파일을 찾습니다.

찾다. -max깊이 1 \(\(-크기 +600M -및 -크기 -1G \) -또는 -이름 "*.mpeg" \) -및 -유형 f

파일에 대한 작업

find 명령이 실행되면 찾은 파일에 대해 다양한 작업을 수행할 수 있습니다. 주요 내용을 살펴 보겠습니다.

실행하는 명령에서 매개변수()를 인수로 사용할 수 있으며, 이는 현재 파일의 경로로 대체됩니다.

작업을 사용하여 find 명령을 사용하는 예

현재 디렉터리에서 1000바이트보다 큰 일반 파일을 찾아 해당 파일에 대해 ls -dils 명령을 실행합니다(ls 작업).

찾다. -크기 +1000c -유형 f -ls

현재 디렉터리에서 물결표 문자 "~"로 시작하는 일반 파일을 찾고, 각 파일에 대해 삭제 요청을 실행합니다(rm 명령 실행).

찾다. -name "~*" -type f -ok rm () \;

결론

이 기사에서 우리는 매우 중요하고 유용한 사항에 대해 논의했습니다. 리눅스 명령 find 는 다양한 기준과 패턴을 사용하여 파일을 검색할 수 있는 거의 무한한 가능성을 제공합니다. 그리고 명령(작업)을 사용하여 파일을 검색하고 해당 파일에 대한 작업을 수행할 수 있습니다.

    파일 이름으로 파일을 찾으세요.가장 간단한 검색은 find 유틸리티를 사용하여 수행됩니다. 아래 명령은 현재 디렉터리와 모든 하위 디렉터리에서 파일을 검색합니다.

    find -iname "파일명"

    • 입력한 파일 이름의 대소문자를 무시하려면 -name 대신 -iname을 입력합니다. -name 명령은 대소문자를 구분합니다.
  1. 루트 디렉터리에서 검색을 시작합니다.시스템 전체 검색을 실행하려면 쿼리에 / 수정자를 추가하세요. 이 경우 find 명령은 루트 디렉터리부터 시작하여 모든 디렉터리에서 파일을 검색합니다.

    찾기 / -iname "파일 이름"

    • 특정 디렉토리에서 검색을 시작할 수 있습니다. 이렇게 하려면 /를 디렉토리 경로(예: /home/max )로 바꾸십시오.
    • 사용할 수 있습니다. / 대신 현재 디렉터리와 그 하위 디렉터리에서만 파일을 검색합니다.
  2. 와일드카드 기호를 사용하세요.* 이름이 요청의 일부와 일치하는 파일을 찾습니다. 와일드카드 문자 *를 사용하면 파일을 찾을 수 있습니다. 이름알 수 없거나 특정 확장자를 가진 모든 파일을 찾으십시오.

    /home/max -iname "*.conf" 찾기

    • 이 명령은 사용자의 Max 폴더(및 하위 폴더)에서 확장자가 .conf인 모든 파일을 찾습니다.
    • 이름이 쿼리의 일부와 일치하는 모든 파일을 찾으려면 이 명령을 사용하십시오. 예를 들어, 컴퓨터에 WikiHow 관련 파일이 많이 있는 경우 "*wiki*"를 입력하여 모든 파일을 찾으세요.
  3. 검색 결과를 더욱 쉽게 관리할 수 있습니다.검색 결과가 너무 많으면 그 중에서 필요한 파일을 찾기가 어려울 수 있습니다. | 검색 결과는 less 명령으로 필터링됩니다. 이렇게 하면 검색 결과를 더 쉽게 찾아보고 필터링할 수 있습니다.

    /home/max -iname "*.conf" 찾기 | 더 적은

    특정 항목을 찾아보세요.검색 결과에 특정 항목만 표시하려면 수정자를 사용하세요. 일반 파일(f), 디렉터리(d), 심볼릭 링크(l), 문자 기반 I/O 장치(c) 및 블록 장치(b)를 검색할 수 있습니다.

    찾기 / -type f -iname "파일 이름"

  4. 파일 크기별로 검색 결과를 필터링하세요.컴퓨터에 비슷한 이름을 가진 파일이 많이 있지만 찾고 있는 파일의 크기를 알고 있는 경우 검색 결과를 파일 크기별로 필터링하세요.

    찾기 / -size +50M -iname "파일 이름"

    • 이 명령은 50MB보다 큰 모든 파일을 찾습니다. + 또는 - 수정자를 사용하여 크기 증가 또는 감소를 나타냅니다. + 또는 - 수정자가 없으면 명령은 지정된 크기와 정확히 일치하는 크기의 파일을 찾습니다.
    • 검색 결과를 바이트(c), 킬로바이트(k), 메가바이트(M), 기가바이트(G) 또는 512바이트 블록(b)별로 필터링할 수 있습니다. 표시된 수정자는 대소문자를 구분합니다.
  5. 검색 필터를 결합하려면 논리 연산자(부울 연산자)를 사용하세요.-and, -or, -not 연산자를 사용하여 서로 다른 항목을 결합할 수 있습니다. 검색어한 번의 요청으로.

    /travelphotos -type f -size +200k -not -iname "*2015*" 찾기

    • 이 명령은 Travelphotos 폴더에서 200kB보다 크고 이름에 숫자 2015가 없는 파일을 찾습니다.

업데이트 날짜: 2019년 11월 2일 게시일: 2016년 7월 25일

Linux에서 가장 다양하고 기능적인 검색 명령은 다음과 같습니다. 찾다.이 글은 그 활용 사례를 담은 치트 시트입니다.

일반 구문

찾다<где искать> <опции>

<где искать> — 검색을 시작할 루트 디렉터리의 경로입니다. 예를 들어, /home/user를 찾으십시오 - 적절한 디렉토리에서 검색하십시오. 현재 디렉토리에는 점 "."을 사용해야 합니다.

<опции> — 검색을 수행하는 데 사용되는 규칙 집합입니다.

* 기본적으로 검색은 재귀적입니다. 특정 디렉토리에서 검색하려면 다음 옵션을 사용할 수 있습니다. 최대 깊이.

옵션 설명

옵션 설명
-이름 이름으로 검색하세요.
-iname 대소문자를 구분하지 않고 이름으로 검색합니다.
-유형

검색 개체 유형입니다. 가능한 옵션:

  • f - 파일;
  • d - 디렉토리;
  • 내가 - 링크;
  • p - 파이프;
  • s -소켓.
-크기 개체 크기. 이는 512바이트 블록으로 지정되거나 단순히 바이트(문자 "c" 사용)로 지정됩니다.
-m시간 파일 수정 시간. 일 단위로 표시됩니다.
-mmin 시간을 분 단위로 변경하세요.
-시간 객체에 마지막으로 액세스한 시간(일)입니다.
-아민 마지막 호출 시간(분)입니다.
-ctime 일 수 내에 객체에 대한 소유자 또는 권리가 마지막으로 변경되었습니다.
-cmin 몇 분 안에 마지막 소유자 또는 권한이 변경되었습니다.
-사용자 소유자로 검색하세요.
-그룹 그룹별로.
-파마 특정 액세스 권한이 있습니다.
-깊이 검색은 루트가 아닌 가장 깊은 중첩 디렉터리부터 시작해야 합니다.
-최대 깊이 카탈로그의 최대 검색 깊이. -maxlength 0 - 현재 디렉터리에서만 검색합니다. 기본적으로 검색은 재귀적입니다.
-치다 나열된 디렉터리를 제외합니다.
-산 다른 파일 시스템으로 이동하지 마십시오.
-정규식 정규 표현식을 사용하여 이름으로.
-정규식<тип> 정규식 유형.
-엘 심볼릭 링크(symlink)의 내용을 표시합니다.
-비어 있는 빈 디렉터리를 검색합니다.
-삭제 발견된 내용을 삭제하세요.
-ls ls -dgils로 출력
-인쇄 무엇을 발견했는지 보여주세요.
-인쇄0 발견된 개체의 경로입니다.
-exec<команда> {} \; 찾은 명령을 실행하십시오.
-좋아요 -exec를 실행하기 전에 프롬프트를 발행하십시오.

현재 옵션의 전체 세트는 다음 명령으로 얻을 수 있습니다. 남자 찾기.

찾기 사용 예

이름으로 파일 검색

찾기 / -이름 "file.txt"

* V 이 예에서는이름이 지정된 파일을 검색합니다. 파일.txt~ 내내 파일 시스템뿌리부터 시작해서 / .

이름의 일부로 파일 검색:

찾기 / -이름 "*.tmp"

* 이 명령은 루트 디렉터리의 모든 폴더나 파일을 검색합니다. /, 다음으로 끝나는 .tmp

다음으로 시작하는 모든 파일 또는 폴더 찾기 ses_그리고 끝 CD

찾다 . -name "sess_*" -a -name "*cd"

* -ㅏ:논리 AND, -영형:논리적 OR.

날짜로 검색

1. 특정 일수 전에 변경된 파일을 검색합니다.

찾다 . -유형 f -m시간 +60

* 이 명령 60일 이상 전에 변경된 파일을 찾습니다.

2. 다음을 사용하여 파일 검색 최신. 이 옵션은 버전 4.3.3부터 사용할 수 있습니다(다음 명령으로 볼 수 있습니다). --버전 찾기).

a) 변경 날짜:

찾다 . -type f -newermt "2019-11-02 00:00"

* 2019년 11월 2일 00:00 이후 변경된 모든 파일을 표시합니다.

찾다 . -type f -newermt 2019-10-31 ! -newermt 2019-11-02

*는 2019년 10월 31일부터 2019년 11월 1일(포함) 사이에 변경된 모든 파일을 찾습니다.

b) 신청 날짜:

찾다 . -type f -newerat 2019-10-08

* 2019년 10월 8일 이후 액세스된 모든 파일.

찾다 . -type f -newerat 2019-10-01 ! -최신 2019-11-01

* 10월에 액세스한 모든 파일입니다.

c) 생성 날짜:

찾다 . -type f -newerct 2019-09-07

찾다 . -type f -newerct 2019-09-07 ! -newerct "2019-09-09 07:50:00"

* 2019년 9월 7일 00:00:00부터 2019년 9월 9일 07:50까지 생성된 파일

유형

현재 디렉터리와 모든 하위 폴더에 있는 파일만 검색합니다.

* 에프— 파일만 검색합니다.

권한으로 검색

우리는 읽기와 쓰기를 위해 오른쪽에 있는 모든 것을 찾고 있습니다.

찾기 / -perm 0666

소유자만 액세스할 수 있는 파일을 찾습니다.

찾기 / -perm 0600

콘텐츠로 파일 검색

찾기 / -유형 f -exec grep -i -H "콘텐츠" () \;

* 이 예에서는 디렉터리의 모든 파일에 대해 재귀 검색이 수행됩니다. / 문자열을 포함하는 목록이 표시됩니다. 콘텐츠.

수정 날짜별로 정렬

/data -type f -printf "%TY-%Tm-%Td %TT %p\n" 찾기 | 정렬 -r

* 명령은 디렉토리의 모든 파일을 찾습니다. /데이터를 선택하면 이름에 수정 날짜가 추가되고 이름별로 데이터가 정렬됩니다. 결과적으로 파일이 변경된 순서대로 이동된다는 것을 알았습니다.

/home/user/* 찾기 -type d -exec chmod 2700 () \;

* 이 예에서는 모든 디렉토리를 검색합니다( d를 입력하세요) 디렉토리에 /홈/사용자그리고 그들에 대한 권리를 설정합니다 2700 .

정기 청소

찾다에 사용하기 편리한 자동 삭제오래된 파일.

편집을 위해 크론 작업을 엽니다.

그리고 다음을 추가하세요:

0 0 * * * /bin/find /tmp -mtime +14 -exec rm () \;

* 이 예에서는 디렉터리에서 모든 파일과 폴더를 삭제합니다. /tmp, 100분의 1은 더 나이가 많다 14 날. 작업은 매일 실행됩니다. 00:00 .
* 명령을 사용하여 실행 파일 찾기의 전체 경로를 확인합니다. 어느 것을 발견- 무관심한 유닉스 시스템그것은 다른 장소에 위치할 수 있습니다.

어떤 일을 하면서도 운영 체제때로는 도구를 사용해야 할 때도 있습니다. 빠른 탐색이 파일 아니면 저 파일. 이는 Linux에도 적용되므로 아래에서 모두 설명합니다. 가능한 방법이 OS에서 파일을 검색하세요. 도구로 제시될 예정 파일 관리자, 그리고 다음에서 사용되는 명령 "단말기".

찾기 위해 많은 검색 매개변수를 지정해야 하는 경우 원하는 파일, 다음 명령 찾다바꾸어 놓을 수 없는. 모든 변형을 고려하기 전에 구문과 옵션을 살펴보는 것이 좋습니다. 다음과 같은 구문이 있습니다.

경로 찾기 옵션

어디 - 검색이 수행될 디렉터리입니다. 경로를 지정하는 데는 세 가지 주요 옵션이 있습니다.

  • / — 루트 및 인접 디렉토리에서 검색합니다.
  • ~ — 홈 디렉토리로 검색;
  • ./ — 사용자가 현재 위치한 디렉토리를 검색합니다.

파일이 있는 것으로 추정되는 디렉터리 자체에 대한 경로를 직접 지정할 수도 있습니다.

옵션 찾다많은 것들이 있으며, 덕분에 필요한 변수를 설정하여 유연한 검색 설정을 수행할 수 있습니다.

  • -이름- 찾고 있는 요소의 이름을 기반으로 검색을 수행합니다.
  • -사용자- 특정 사용자와 관련된 파일을 검색합니다.
  • -그룹- 특정 사용자 그룹을 검색합니다.
  • -파마- 지정된 액세스 모드의 파일을 표시합니다.
  • -크기 n- 물체의 크기를 기준으로 검색합니다.
  • -m시간 +n -n- 다음보다 많이 변경된 파일 검색( +n) 이하 ( -N) 며칠 ​​전에;
  • -유형- 특정 유형의 파일을 검색합니다.

찾고 있는 요소의 유형도 다양합니다. 목록은 다음과 같습니다.

  • - 차단하다;
  • 에프- 평범한;
  • - 명명된 파이프;
  • - 카탈로그;
  • - 링크;
  • 에스- 소켓;
  • - 상징적.

명령 구문 및 옵션을 자세히 분석한 후 찾다예시 사례로 직접 이동할 수 있습니다. 명령 사용에 대한 옵션이 많기 때문에 모든 변수에 대한 예제가 제공되지 않고 가장 많이 사용되는 변수에 대해서만 예제가 제공됩니다.

방법 1: 이름으로 검색(-name 옵션)

대부분의 경우 사용자는 옵션을 사용하여 시스템을 검색합니다. -이름, 여기서부터 시작하겠습니다. 몇 가지 예를 살펴보겠습니다.

확장자로 검색

시스템에서 확장자를 가진 파일을 찾아야 한다고 가정해 보겠습니다. ".xlsx", 이는 디렉토리에 있습니다. "드롭 박스". 이렇게 하려면 다음 명령을 사용해야 합니다.

/home/user/Dropbox -name "*.xlsx" 찾기 -print

구문을 보면 검색이 디렉터리에서 수행된다고 말할 수 있습니다. "드롭 박스" ("/홈/사용자/드롭박스"), 원하는 객체에는 확장자가 있어야 합니다. ".xlsx". 별표는 이름을 고려하지 않고 이 확장명의 모든 파일에 대해 검색이 수행된다는 것을 나타냅니다. "-인쇄"검색 결과가 표시됨을 나타냅니다.

파일 이름으로 검색

예를 들어 디렉토리에서 검색하려고 합니다. "/집"이름이 있는 파일 "덩어리"이지만 확장자를 알 수 없습니다. 이 경우 다음을 수행해야 합니다.

찾기 ~ -이름 "lumpic*" -인쇄

보시다시피 여기에 사용된 기호는 다음과 같습니다. «~» , 이는 검색이 홈 디렉토리에서 수행됨을 의미합니다. 옵션 이후 "-이름"검색된 파일의 이름이 표시됩니다( "덩어리*"). 끝에 있는 별표는 확장자를 고려하지 않고 이름만으로 검색이 수행됨을 의미합니다.

이름의 첫 글자로 검색

파일 이름의 첫 글자만 기억하는 경우 해당 파일을 찾는 데 도움이 되는 특수 명령 구문이 있습니다. 예를 들어, from이라는 문자로 시작하는 파일을 찾으려고 합니다. "g"~ 전에 "엘", 그리고 당신은 그것이 어떤 디렉토리에 있는지 알 수 없습니다. 그런 다음 다음 명령을 실행해야 합니다.

찾기 / -이름 "*" -인쇄

메인 명령어 바로 뒤에 오는 "/" 기호로 판단하면 루트 디렉터리부터 시작하여, 즉 전체 시스템에 걸쳐 검색이 수행됩니다. 다음 부분 «*» 검색된 단어가 특정 문자로 시작된다는 의미입니다. 우리의 경우 "g"~ 전에 "엘".

그런데 파일 확장자를 알고 있다면 기호 뒤에 «*» 지정할 수 있습니다. 예를 들어, 동일한 파일을 찾아야 하지만 해당 파일에 확장자가 있다는 것을 알고 있습니다. ".odt". 그런 다음 다음 명령을 사용할 수 있습니다.

찾기 / -이름 "*.odt" -인쇄

방법 2: 액세스 모드로 검색(-perm 옵션)

이름은 모르지만 해당 개체의 액세스 모드는 알고 있는 개체를 찾아야 하는 경우가 있습니다. 그런 다음 옵션을 사용해야합니다 "-파마".

사용 방법은 매우 간단합니다. 검색 위치와 액세스 모드만 지정하면 됩니다. 다음은 그러한 명령의 예입니다.

찾기 ~ -perm 775 -print

즉, 검색은 홈 섹션에서 수행되며 검색되는 개체에는 액세스 권한이 부여됩니다. 775 . 이 숫자 앞에 "-" 기호를 쓸 수도 있습니다. 그러면 발견된 개체는 0부터 지정된 값까지의 권한 비트를 갖게 됩니다.

방법 3: 사용자 또는 그룹으로 검색(옵션 -user 및 -group)

모든 운영 체제에는 사용자와 그룹이 있습니다. 이러한 카테고리 중 하나에 속하는 개체를 찾으려면 다음 옵션을 사용할 수 있습니다. "-사용자"또는 "-그룹", 각각.

사용자 이름으로 파일 찾기

예를 들어, 디렉토리에서 찾아야 합니다. "드롭 박스"파일 "램프", 그러나 당신은 그것이 무엇인지 모르고 그것이 사용자에게 속한다는 것만 알고 있습니다. "사용자". 그런 다음 다음 명령을 실행해야 합니다.

찾기 /home/user/Dropbox -user 사용자 -print

이 명령에서는 필수 디렉터리( /홈/사용자/드롭박스), 사용자에게 속한 파일을 찾아야 함을 나타냅니다( -사용자), 이 파일이 속한 사용자를 표시합니다( 사용자).

그룹 이름으로 파일 검색하기

특정 그룹에 속하는 파일을 검색하는 것도 마찬가지로 쉽습니다. 옵션만 바꾸면 됩니다. "-사용자"옵션으로 "-그룹"이 그룹의 이름을 표시하십시오.

찾기 / -그룹 게스트 -인쇄

즉, 그룹에 속한 시스템에서 파일을 찾고 싶다고 표시하셨습니다. "손님". 검색은 시스템 전체에서 이루어지며 이는 기호로 표시됩니다. «/» .

방법 4: 유형별로 파일 검색(-type 옵션)

Linux에서 특정 유형의 요소를 찾는 것은 매우 간단합니다. 적절한 옵션( -유형) 종류를 지정합니다. 기사 시작 부분에는 검색에 사용할 수 있는 모든 유형 지정이 나열되어 있습니다.

예를 들어 홈 디렉터리에서 모든 블록 파일을 찾으려고 합니다. 이 경우 명령은 다음과 같습니다.

찾기 ~ -유형 b -인쇄

따라서 옵션에서 알 수 있듯이 파일 형식별로 검색한다고 표시하셨습니다. "-유형"그런 다음 블록 파일 기호를 넣어 유형을 결정합니다. "비".

같은 방법으로 명령에 기호를 입력하면 원하는 디렉터리의 모든 디렉터리를 표시할 수 있습니다. "디":

찾기 /home/user -type d -print

방법 5: 크기별로 파일 검색(-size 옵션)

파일에 대해 알고 있는 것이 크기뿐이라면 그것만으로도 파일을 찾기에 충분할 수 있습니다. 예를 들어, 특정 디렉토리에서 120MB 파일을 찾으려면 다음을 수행하십시오.

/home/user/Dropbox -크기 120M -인쇄 찾기

보시다시피 필요한 파일을 찾았습니다. 그러나 어떤 디렉터리에 있는지 모르는 경우 명령 시작 부분에 루트 디렉터리를 지정하여 전체 시스템을 검색할 수 있습니다.

찾기 / -크기 120M -인쇄

파일의 대략적인 크기를 알고 있는 경우 이 경우에 대한 특별한 명령이 있습니다. 당신은에 등록해야합니다 "단말기"마찬가지입니다. 파일 크기를 표시하기 전에 기호를 넣으면 됩니다. «-» (지정된 크기보다 작은 파일을 찾아야 하는 경우) 또는 «+» (찾고 있는 파일의 크기가 지정된 크기보다 큰 경우) 다음은 그러한 명령의 예입니다.

/home/user/Dropbox +100M 찾기 -인쇄

방법 6: 수정 날짜로 파일 찾기(옵션 -mtime)

파일을 수정한 날짜로 검색하는 것이 가장 편리한 경우가 있습니다. Linux에서는 다음 옵션을 사용하여 이 작업을 수행합니다. "-m시간". 사용법은 매우 간단합니다. 예제를 사용하여 모든 것을 살펴보겠습니다.

폴더에 있다고하자 "이미지"지난 15일 동안 변경된 개체를 찾아야 합니다. 여기서 작성해야 할 내용은 다음과 같습니다. "단말기":

/home/user/Images -mtime -15 -print 찾기

보시다시피 이 옵션은 지정된 기간 동안 변경된 파일뿐만 아니라 폴더도 표시합니다. 또한 반대 방향으로도 작동합니다. 지정된 날짜 이후에 변경된 개체를 찾을 수 있습니다. 이렇게 하려면 디지털 값 앞에 기호를 입력해야 합니다. «+» :

/home/user/Images -mtime +10 -print 찾기

GUI

그래픽 인터페이스는 방금 설치한 초보자의 삶을 훨씬 쉽게 만듭니다. 리눅스 배포판. 이 방법검색은 Windows의 검색과 매우 유사하지만 제공되는 모든 이점을 제공할 수는 없습니다. "단말기". 하지만 가장 먼저 해야 할 일이 있습니다. 이제 시스템의 그래픽 인터페이스를 사용하여 Linux에서 파일을 검색하는 방법을 살펴보겠습니다.

방법 1: 시스템 메뉴를 통해 검색

이제 메뉴를 통해 파일을 검색하는 방법을 살펴보겠습니다. 리눅스 시스템. 수행된 작업은 Ubuntu 16.04 LTS 배포판에서 수행되지만 지침은 모든 사람에게 공통됩니다.

공유하다