Linux에서 찾기 명령의 40가지 최고의 예

Linux find 명령은 시스템 관리자가 광범위한 검색 기준에 따라 파일과 디렉토리를 찾고 관리할 수 있게 해주는 강력한 도구입니다. 이름, 유형 또는 확장자, 크기, 권한 등으로 디렉토리와 파일을 찾을 수 있습니다.

파일 및 디렉터리를 찾는 것 외에도 find 명령을 다른 명령과 결합하면 결과에 대해 조치를 취할 수 있습니다. -exec 옵션을 추가하면 시스템 관리자가 외부 명령을 실행하고 크기, 이름 등과 같은 지정된 기준과 일치하는 파일의 권한 복사, 이동, 삭제 또는 변경과 같은 작업을 수행할 수 있습니다.

이 기사에서는 기본 Linux 찾기 명령을 예제와 함께 설명하는 것으로 시작합니다. 이것은 파일과 디렉토리를 찾는 방법을 보여줍니다. 그런 다음 -exec 옵션을 사용하여 크기, 권한 등에 따라 파일 또는 디렉토리에 대해 작업하는 방법을 보여줍니다.

find 명령의 일반 구문은 다음과 같습니다.

find {path} {name -of-file or dir-to-search} {action-to-take}

어디에,

  • 경로는 디렉토리를 지정합니다.
  • name-of file 또는 dir-to-search : 찾을 파일 또는 디렉토리의 이름
  • 취할 조치: 복사, 삭제, 이동 등과 같은

이 튜토리얼에서는 지정된 패턴과 일치하는 파일 및 디렉토리를 찾는 방법을 설명합니다. 또한 find 명령이 찾은 파일이나 디렉토리에서 작업을 수행하는 방법도 살펴보겠습니다. 이 가이드는 Ubuntu를 기반으로 하지만 대부분의 Linux 배포판 및 버전에 적용할 수 있습니다.

목차

파일 및 디렉토리 찾기

이름 또는 확장자로 특정 파일 찾기

특정 파일을 찾으려면 루트(/)에서 다음 명령을 실행하십시오. 명령에는 검색 중인 파일의 정확한 이름이 포함되어 있습니다.

find . -name file22.txt

산출

./test/file22.txt
./sales/file22.txt

결과에는 경로가 포함됩니다. 이것은 파일이 있는 디렉토리를 모르거나 파일이 둘 이상의 위치에 있는 경우에 중요합니다.

현재 위치에 있는 동안 다른 디렉토리에서 파일을 검색할 수도 있습니다. 이 경우 검색하려는 디렉토리의 경로를 제공해야 합니다.

find ./test -name file22.txt

다른 디렉토리에서 특정 파일 찾기

우리의 경우 테스트 디렉토리에서 문자 파일로 시작하는 모든 것을 찾을 것입니다.

find ./test -name file*

산출

./test/file22.txt
./test/file30.doc
./test/file1.txt
./test/file5,doc

확장자로 파일 검색

Linux에서 특정 확장자를 가진 파일을 찾으려면 명령에 추가하십시오.

find . -name *.txt

산출

./test/subtest/subfil.txt
./test/file22.txt
./test/file1.txt
./home1/files32.txt
./home2/file22.txt
./qa/tags.txt

이름으로 파일 및 디렉토리 찾기

아래 명령을 사용하여 문자 qa로 시작하는 파일 및 디렉토리를 찾으십시오. 우리 컴퓨터에는 qatree.txt 및 qa.txt 파일과 qa라는 이름의 디렉토리가 있습니다.

  Elitebook에서 HP 오디오 드라이버의 키 로깅을 차단하는 방법

명령을 실행하면;

find ./ -name "qa*"

다음 출력을 반환합니다.

./test/qatree.pdf
./test/qa.txt
./home/qa

이 명령은 검색 기준과 일치하는 파일과 디렉터리를 모두 반환합니다. 파일 또는 디렉터리만 찾으려면 명령에서 이를 지정해야 합니다.

파일 또는 디렉토리만 찾기

파일의 경우에만 유형 f 스위치를 사용하십시오.

파일만

find ./ -type f -name "qa*"

산출

./test/qatree.pdf
./test/qa.txt

디렉토리만

디렉토리만 찾으려면 type d 옵션을 추가하십시오.

find ./ -type d -name "qa*"

산출

./home/qa

대소문자를 구분하지 않는 찾기 명령

-name 스위치를 사용하는 모든 검색은 대소문자를 구분하며 대문자로 된 결과를 제공하지 않습니다. 모든 케이스를 가져오려면 -iname 옵션을 사용하십시오.

find ./ -iname "qa*"

산출

./test/qatree.pdf
./test/qa.txt
./test/QAtest.txt
./home/qa

여러 디렉토리에서 파일 검색

다른 디렉토리에서 파일을 찾으려면 해당 경로를 명령에 추가하십시오. 이 경우 테스트 및 숫자 디렉토리를 확인합니다.

find ./test ./numeric -name file22.txt -type f

산출

./test/file22.txt
/root/numeric/file22.txt

모든 디렉토리에서 확장자가 다른 여러 파일 찾기

find 명령을 사용하여 *.doc, *.txt *.pdf 등과 같이 서로 다른 확장자를 공유하는 여러 파일을 찾을 수 있습니다. 이 작업은 한 번에 하나의 확장자를 개별적으로 수행하거나 모든 파일을 포함하는 하나의 명령만 사용하여 수행할 수 있습니다. 원하는 확장자.

찾기 . -유형 f ( -이름 “*.txt” -o -이름 “*.pdf” -o -이름 “*.doc” )

산출

./test/subtest/subfil.txt
./test/qatree.pdf
./test/file22.txt
./test/qa.txt
./test/file30.doc
./books/acro.pdf
./data1/FILE22.txt
./docs/files32.txt

특정 텍스트가 포함된 파일 찾기

특정 텍스트가 포함된 파일에 액세스하고 싶지만 파일 이름이나 위치를 기억할 수 없는 경우가 있습니다. 이 명령을 사용하면 대상 텍스트가 포함된 모든 파일을 찾을 수 있습니다.

hyperconvergence”라는 단어가 포함된 모든 파일을 찾으려면 다음을 사용하십시오.

find / -type f -exec grep -l -i "hyperconvergence" {} ;

산출

/root/numeric/hci
/root/HCIP

–i 옵션을 사용하면 명령이 대소문자를 무시하고 대문자인지 여부에 관계없이 하이퍼컨버전스, 하이퍼컨버전스 등의 텍스트를 찾을 수 있습니다.

특정 디렉토리에서 파일을 찾으려면 간단히 명령에 추가하십시오.

find ./numeric -type f -exec grep -l -i "hyperconvergence" {} ;

산출

./numeric/hci

더 많은 grep 명령 예제를 살펴보십시오.

크기에 따라 파일 및 디렉토리 찾기

특정 범위 내에서 또는 비어 있거나 특정 크기보다 작거나 같거나 큰 모든 파일 또는 디렉토리를 찾을 수 있습니다. 검색 중인 파일 또는 디렉토리 유형에 따라 적절한 크기 형식을 사용하십시오.

크기 옵션에는 다음이 포함됩니다.

c – 바이트

k – 킬로바이트

M – 메가바이트

G – 기가바이트

특정 크기의 파일 찾기 – 30MB와 동일

30MB 파일을 모두 검색하려면

find / -size 30M

지정된 크기보다 큰 파일 찾기

find -size +2M

산출

. /Downloads/ubuntu18043.iso 
./.cache/pip/http/6/e/3/8/3/6e38383f41850c3e5705d48116bc52f81b92a80500f414305057 7a9c

현재 디렉터리에서 10MB 미만의 파일 찾기

find . -type f -size -10M

크기가 100~200MB인 파일 찾기

100~200MB 사이와 같은 특정 범위 내의 파일을 찾을 때

find / -size +100M -size -200M

20kb보다 큰 디렉토리를 찾으십시오.

찾기 / -유형 d -크기 +20k

빈 파일과 디렉터리를 찾습니다.

파일

찾기 ./ -유형 f -크기 0

또는

find ./ -type f –empty

디렉토리

find ./ -type d –empty

나이 또는 수정 시간으로 파일 찾기

n일보다 오래된 파일 찾기

find /path/ -type f -name '*.txt' -mtime +8

-mtime +8은 8일보다 오래된 txt 파일을 찾습니다.

수정일 기준

지난 17시간 이내에 수정된 파일을 찾습니다.

find . -mtime -17 -type f 

지난 10일 이내에 수정된 디렉토리를 찾습니다.

find . -mtime -10 -type d 

액세스 또는 수정을 기반으로 파일 찾기

액세스한 날짜 또는 시간을 기준으로 파일을 찾습니다. 이를 통해 지정된 기간 내에 액세스했거나 액세스하지 않은 파일을 볼 수 있습니다.

홈 디렉토리에서 지난 10일 동안 액세스하지 않은 파일을 보려면.

find /home -atime +10

정확히 10일 전에 액세스한 파일

find /home -atime 10

지난 10일 이내에 액세스함

find /home -atime -10

지난 n일 이내에 수정된 파일 찾기

명령을 사용하여 지난 10일 이내에 수정된 /home 디렉토리의 파일을 찾을 수도 있습니다.

find /home -mtime -10 

특정 기간 내에 수정된 파일을 찾습니다.

예를 들어, 홈 디렉터리에서 6일에서 15일 사이에 수정된 모든 파일입니다.

find /home -type f -mtime +6 -mtime -15

최근 10분 이내에 액세스한 파일 및 디렉토리

최근 10분 이내에 액세스한 파일을 찾으려면 -amin 옵션을 사용하십시오.

find . -amin -10 -type f

산출

./.bash_history
./[email protected]:~#

최근 10분 이내에 액세스한 디렉토리

find . -amin -10 -type d

특정 권한과 일치하는 파일 찾기

통사론

$ find -perm mode

여기서 mode는 644, 655, 700, 777 등과 같은 숫자이거나 u=x, a=r+x 등과 같은 문자인 권한입니다.

  Xfinity 포드가 작동하지 않는 문제 수정

다음 세 가지 방법으로 모드를 지정할 수 있습니다.

  • 지정된 정확한 권한을 가진 파일을 찾으려는 경우 접두어가 없습니다.
  • 최소한 지정된 권한이 있는 파일에 대해 “-“를 사용합니다. 이렇게 하면 지정된 추가 권한과 더 높은 권한이 있는 파일이 반환됩니다.
  • “/”를 사용하려면 파일에 대한 권한이 있는 소유자 또는 그룹을 지정해야 합니다.
  • 권한이 777인 파일 찾기

    find -perm 777

    산출

    ./file1

    766 이상인 파일 찾기
    찾기 -perm -766

    산출

    ./file2
    ./file1

    이 명령은 다음이 포함된 모든 파일을 찾습니다.

    • 파일 소유자는 읽기/쓰기/실행 권한을 가집니다.
    • 그룹에 읽기/쓰기 권한이 있음
    • 다른 사용자는 읽기/쓰기 권한이 있습니다.

    따라서 이 기준을 충족하는 두 개의 파일(file1 및 file2)을 반환합니다. 파일은 정확한 766 권한을 가질 필요가 없으며 추가 권한을 가질 수 있지만 최소한 지정된 권한이 있어야 합니다.

    소유자가 쓰기 가능한 파일 찾기

    이제 “/”를 사용하여 소유자나 그룹 또는 다른 사람이 쓸 수 있는 파일을 찾습니다.

    find -perm /222
    .
    ./file2
    ./file3
    ./file1

    위는 소유자나 그룹이 쓸 수 있는 파일을 찾습니다.
    이것은 둘 중 하나가 쓸 수 있지만 반드시 둘 다일 필요는 없는 파일을 반환합니다. 둘 다 쓰기 권한이 있는 파일을 보려면 – 접두사를 사용합니다.

    find -perm -220

    산출

    ./file2
    ./file1

    사용자가 소유한 파일 찾기

    Jack이 소유한 모든 파일 찾기

    find /home -user jack

    산출

    /home/jack
    /home/jack/examples.desktop
    /home/jack/.gnupg
    /home/jack/.gnupg/private-keys-v1.d
    /home/jack/ans.cgi

    사용자가 소유한 특정 파일 찾기

    Jack이 소유한 모든 텍스트 파일 찾기

    find /home -user jack -iname "*.txt"

    산출

    /home/jack/docs/file32.txt

    권한과 함께 파일 및 디렉토리 찾기 및 나열

    find -name "*.conf" | ls -l

    산출

    total 120
    drwxr-xr-x 2 root root 4096 Dec 31 13:19 backup2
    drwxr-xr-x 2 root root 4096 Jan 4 11:57 Desktop
    drwxr-xr-x 2 root root 4096 Dec 31 11:50 Documents
    drwxr-xr-x 2 root root 4096 Dec 31 12:27 Downloads
    -rw-r--r-- 1 root root 0 Jan 4 12:02 file22.doc
    drwxr-xr-x 2 root root 4096 Jan 4 12:14 file23
    -rw-r--r-- 1 root root 0 Jan 4 12:23 file23.txt

    결과를 찾고 조치를 취하십시오.

    이 섹션에서는 find 명령에 지정된 패턴과 일치하는 파일에 대해 작업을 수행할 수 있는 방법을 살펴보겠습니다.

    파일 찾기 및 권한 변경

    특정 파일 형식의 권한을 찾고 변경합니다. 우리의 경우 아래와 같이 다른 권한을 가진 PHP 파일로 작업할 것입니다.

    [email protected]:~/ver$ ls -la
    
    total 8
    drwxrwxr-x 2 jack jack 4096 Jan 3 14:11 .
    drwxr-xr-x 8 jack jack 4096 Jan 3 14:05 ..
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:06 ans.php
    -rw-rw-r-- 1 jack jack 0 Jan 3 14:11 base.php
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:06 query.php
    -rw-rw-r-- 1 jack jack 0 Jan 3 14:11 qust.php
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:06 text.php
    -rw-rw-r-- 1 jack jack 0 Jan 3 14:11 vary.php

    이제 위의 모든 PHP 파일을 찾고 해당 권한을 755로 바꿉니다.

    find ver -name "*.php" -type f -exec chmod 755 {} ;

    이 명령은 ver 디렉토리에서 PHP 파일을 찾은 다음 해당 권한을 755(rwxr-xr-x)로 설정합니다.

    결과

    [email protected]:~/ver$ ls -la
    total 8
    drwxrwxr-x 2 jack jack 4096 Jan 3 14:11 .
    drwxr-xr-x 8 jack jack 4096 Jan 3 14:05 ..
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:06 ans.php
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:11 base.php
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:06 query.php
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:11 qust.php
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:06 text.php
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:11 vary.php

    파일 및 디렉토리 권한 찾기 및 변경

    644 권한이 있는 파일을 찾아 655 권한을 갖도록 변경

    find . -type f -perm 644 -exec chmod 655 {} ;

    644 권한이 있는 디렉터리를 찾아 755로 바꿀 수도 있습니다.

    find . -type d -perm 644

    산출

    ./docs   

    문서 폴더에는 644 권한이 있습니다.

    drwxrwxr-x 2 jack jack 4096 Jan 3 12:45 docs

    755로 설정하기 위해 다음을 실행합니다.

    find . -type d -perm 644 -exec chmod 755 {} ;

    이제 정확히 755가 무엇인지 다시 확인할 수 있습니다.

    find . -type d -perm 755

    산출
    .
    ./문서

      11 SMB를 위한 비즈니스 프로세스 관리(BPM) 소프트웨어

    위에서 우리는 root 및 docs 디렉토리에 755 권한이 있음을 알 수 있습니다.

    Ls –la 명령은 다음 세부 정보를 제공합니다.

    drwxr-xr-x 2 jack jack 4096 Jan 3 12:45 docs

    파일 또는 디렉토리 찾기 및 복사

    특정 파일을 찾아 디렉토리에 복사

    아래 명령은 file22.txt 파일을 찾아 ~/tmp/images 디렉토리에 복사합니다.

    find -iname file22.txt -exec cp {} ~/tmp/images ;

    한 가지 유형의 파일을 찾아 디렉토리에 복사

    현재 디렉토리에서 확장자가 jpg인 이미지와 같은 파일을 찾아 이미지 폴더와 같은 다른 위치에 복사하려면 다음을 사용하십시오.

    find -iname '*.jpg' -exec cp {} ~/tmp/images ;

    이렇게 하면 모든 jpg 파일을 찾아서 ~/tmp/images 폴더에 복사합니다.

    하나의 파일을 찾아 여러 디렉토리에 복사

    단일에서 여러 디렉토리를 찾아 복사합니다.

    find ~/tmp/dir1/ ~/tmp/dir2/ $HOME/3/ -maxdepth 0 -exec cp ~/numeric/hci {} ;

    이것은 파일 hci 파일을 찾아 /tmp/dir1/ /tmp/dir2/ 및 $HOME/3/의 세 디렉토리에 복사합니다.

    파일 찾기 및 다른 디렉토리로 이동

    알려진 파일을 디렉토리에서 다른 디렉토리로 이동합니다. universal.php 파일을 이동하려면;

    find ~/folder/ -type f -name universal.php -exec mv {} ~/numeric/ ;

    특정 확장자를 가진 파일을 검색하여 다른 폴더로 이동

    find ~/numeric/ -type f -name '*.php' -exec mv {} ~/folder/ ;

    특정 파일 찾기 및 특정 다른 폴더로 이동

    find -type f -name uni*.* -exec mv {} ~/unifiles/ ;

    이 명령은 이름이 uni로 시작하고 확장자가 있는 모든 파일을 찾습니다. 그런 다음 /unifiles/ 디렉토리로 이동합니다.

    연령에 따라 파일 찾기 및 이동

    지정된 날짜보다 오래된 파일을 찾아 아카이브와 같은 다른 위치로 이동합니다.

    find /path/ -type f -name '*.pdf' -mtime +20 -exec mv {} /backup1/ ;

    이렇게 하면 20일이 지난 pdf 파일을 찾아 backup1 디렉터리로 이동합니다.

    파일 및 디렉토리 찾기 및 삭제

    현재 디렉토리에서 파일 또는 디렉토리를 찾고 제거하는 구문은 다음과 같습니다.

    찾기 . -type f -name “삭제할 파일” -exec rm -f {} ; 파일만 삭제하거나

    찾기 . -type d -name “dir-to-delete” -exec rm -rf {} ; 디렉토리만 삭제

    특정 파일만 찾아 삭제

    til로 시작하는 파일을 찾아 삭제하려면 다음을 사용하십시오.

    find . -type f -name "til*" -exec rm {} ; 

    til로 시작하는 디렉토리를 찾아 삭제하려면

    find . -type d -name "til*" -exec rm {} ;

    파일과 디렉토리 모두 제거

    find . -name "til*" -exec rm -rf {} ; 

    이렇게 하면 til 문자로 시작하는 파일과 디렉터리가 모두 제거됩니다.

    확장자로 삭제

    다음은 현재 디렉토리에서 모든 txt 파일을 찾아 삭제하는 방법입니다. txt를 bak, pdf 또는 제거하려는 다른 확장자로 바꾸십시오.

    find . -type f -name "*.txt" -exec rm -f {} ;

    각 파일을 삭제하기 전에 시스템에서 확인 메시지를 표시하려면 아래와 같이 -i 옵션을 추가하십시오.

    find . -type f -name "*.txt" -exec rm -i {} ;

    산출

    rm: remove regular empty file './File22.txt'? y
    rm: remove regular empty file './file22.txt'? y
    rm: remove regular empty file './file23.txt'?

    기본적으로 -rm은 디렉토리를 제거하지 않으며 재귀 제거를 보장하려면 -r 옵션을 사용해야 합니다. 이렇게 하면 빈 디렉터리와 파일이 포함된 디렉터리를 삭제할 수 있습니다. -f 옵션은 강제로 제거하며 파일과 디렉토리 모두에 사용됩니다.

    n일보다 오래된 파일 찾기 및 삭제

    현재 디렉터리에서 20일이 지난 백업 파일을 찾아 삭제합니다.

    find . -type f -name '*.bak' -mtime +20 -exec rm {} ;

    이렇게 하면 20일이 지난 모든 .bak 파일이 삭제됩니다.

    디렉토리만 찾아서 삭제

    dir22라는 디렉토리를 삭제하려면

    find . -type d -name dir22 -exec rm -rf {} ;

    디렉토리 이름 대소문자가 일치하는지 확인하거나 -iname 옵션을 사용하십시오.

    find . -type d -iname Dir22 -exec rm -rf {} ;

    Dir22와 dir22를 모두 제거합니다.

    삭제하기 전에 확인하려면 -i 옵션을 사용하십시오.

    find . -type d -iname Dir22 -exec rm -rf -i {} ;

    산출
    rm: ‘./Dir22’ 디렉토리를 제거하시겠습니까? N
    rm: ‘./dir22’ 디렉토리를 제거하시겠습니까? 와이

    우리의 경우 삭제되지 않을 디렉터리 Dir22에 대해 n을 입력하고 이제 제거될 dir22에 대해 y를 입력했습니다.

    빈 파일 찾기 및 제거

    다음 명령 중 하나를 사용하여 빈 파일을 찾아 자동으로 삭제할 수 있습니다.

    find ./ -type f -size 0 -exec rm -f {} ;

    또는
    찾기 ./ -유형 f -크기 0 | xargs rm -f
    또는
    찾기 ./ -유형 f -크기 0 –삭제

    빈 디렉터리 찾기 및 제거

    빈 디렉토리를 제거하려면 d 옵션을 사용합니다.

    find ./ -type d -empty -exec rmdir {} ;

    또 다른 대안은 제거 대신 삭제를 사용하는 것입니다.

    find ./ -type d -empty -delete

    컴퓨터에서 시스템 또는 중요한 파일을 삭제하면 운영 체제 또는 응용 프로그램이 손상되거나 중요한 데이터가 손실될 수 있습니다.

    우발적인 삭제를 방지하려면 루트가 아닌 사용자 계정을 사용하는 것이 가장 좋습니다. 또한 유용하지 않은 올바른 파일을 삭제하고 만일을 대비하여 모든 데이터 파일을 백업했는지 확인하십시오.

    무엇 향후 계획?

    계속해서 실험실 또는 비생산 환경에서 위의 Linux 찾기 명령을 시도하십시오. 일부를 사용하여 Crontab으로 파일 시스템 정리를 자동화할 수 있는지 확인하십시오. 그리고 Linux를 마스터하려면 다음을 확인하십시오. 온라인 코스.