명령 줄을 사용하여 Linux에서 파일 및 폴더를 찾는 방법

대부분의 사람들은 Gnome의 Nautilus, KDE의 Dolphin, Xfce의 Thunar와 같은 그래픽 파일 관리자를 사용하여 Linux에서 파일을 찾습니다. 그러나 사용하는 데스크탑 관리자에 관계없이 명령 줄을 사용하여 Linux에서 파일을 찾는 방법에는 여러 가지가 있습니다.

찾기 명령 사용

"find"명령을 사용하면 대략적인 파일 이름을 알고있는 파일을 검색 할 수 있습니다. 가장 간단한 형태의 명령은 현재 디렉토리에서 파일을 검색하고 제공된 검색 기준과 일치하는 하위 디렉토리를 반복적으로 검색합니다. 이름, 소유자, 그룹, 유형, 권한, 날짜 및 기타 기준으로 파일을 검색 할 수 있습니다.

프롬프트에 다음 명령을 입력하면 현재 디렉터리에있는 모든 파일이 나열됩니다.

찾기 .

"찾기"뒤의 점은 현재 디렉토리를 나타냅니다.

특정 패턴과 일치하는 파일을 찾으려면 -name인수를 사용하십시오 . 파일 이름 메타 문자 (예 :)를 사용할 수 *있지만 \각 문자 앞에 이스케이프 문자 ( )를 넣거나 따옴표로 묶어야합니다.

예를 들어 Documents 디렉토리에서 "pro"로 시작하는 모든 파일을 찾으려면 cd Documents/명령을 사용 하여 Documents 디렉토리로 변경 한 후 다음 명령을 입력합니다.

찾기 . -프로 이름 \ *

"pro"로 시작하는 현재 디렉토리의 모든 파일이 나열됩니다.

참고 : find 명령은 기본적으로 대소 문자를 구분합니다. 단어 나 구를 검색 할 때 대소 문자를 구분하지 않으 -iname려면 find 명령과 함께 옵션을 사용하십시오 . 대소 문자를 구분하지 않는 -name명령 버전입니다 .

경우 find귀하의 기준에 일치하는 파일을 찾을 수 없습니다, 그것은 더 출력을 생성하지 않습니다.

find 명령에는 검색을 구체화하는 데 사용할 수있는 많은 옵션이 있습니다. find 명령에 대한 자세한 내용을 보려면 man find  터미널 창에서 실행 하고 Enter를 누르십시오.

찾기 명령 사용

find 명령은 이전에 빌드 된 데이터베이스를 사용하기 때문에 find 명령보다 빠르지 만 find 명령은 모든 실제 디렉토리와 파일을 통해 실제 시스템에서 검색합니다. find 명령은 지정된 문자 그룹을 포함하는 모든 경로 이름 목록을 반환합니다.

데이터베이스는 cron에서 주기적으로 업데이트되지만 최신 결과를 얻을 수 있도록 언제든지 직접 업데이트 할 수도 있습니다. 이렇게하려면 프롬프트에 다음 명령을 입력하십시오.

sudo 업데이트 b

메시지가 나타나면 암호를 입력하십시오.

find 명령의 기본 형식은 검색 기준의 전체 또는 일부를 포함하는 파일 시스템의 모든 파일을 루트에서 시작하여 찾습니다.

mydata 찾기

예를 들어, 위의 명령은 "mydata"를 포함하는 두 개의 파일과 "data"를 포함하는 하나의 파일을 찾았습니다.

검색 기준 만 정확히 포함하는 모든 파일 또는 디렉토리를 찾으려면 다음과 같이 find -b명령과 함께 옵션을 사용하십시오 .

-b '\ mydata'를 찾습니다.

위의 명령에서 백 슬래시는 글 로빙 문자로, 비 특정 파일 이름의 와일드 카드 문자를 특정 파일 이름 집합으로 확장하는 방법을 제공합니다. 와일드 카드는 표현식이 평가 될 때 하나 이상의 문자로 대체 될 수있는 기호입니다. 가장 일반적인 와일드 카드 기호는 ?단일 문자를 나타내는 물음표 ( )와 *연속적인 문자열을 나타내는 별표 ( )입니다. 위의 예에서 백 슬래시는 "mydata"를 "* mydata *"로 암시 적으로 대체하지 못하도록하므로 "mydata"가 포함 된 결과 만 표시됩니다.

mlocate 명령은 find의 새로운 구현입니다. 전체 파일 시스템을 인덱싱하지만 검색 결과에는 현재 사용자가 액세스 할 수있는 파일 만 포함됩니다. mlocate 데이터베이스를 업데이트하면 데이터베이스에 타임 스탬프 정보가 유지됩니다. 이를 통해 mlocate는 내용을 다시 읽지 않고 디렉토리 내용이 변경되었는지 알 수 있으며 데이터베이스 업데이트를 더 빠르고 하드 드라이브에서 덜 요구합니다.

mlocate를 설치하면 / usr / bin / locate 바이너리 파일이 mlocate를 가리 키도록 변경됩니다. mlocate를 설치하려면 Linux 배포판에 아직 포함되지 않은 경우 프롬프트에 다음 명령을 입력하십시오.

sudo apt-get 설치 mlocate

참고 :이 문서의 뒷부분에서 명령 실행 파일이있는 경우 해당 위치를 확인할 수있는 명령을 보여줍니다.

mlocate 명령은 표준 위치 명령과 동일한 데이터베이스 파일을 사용하지 않습니다. 따라서 프롬프트에 다음 명령을 입력하여 데이터베이스를 수동으로 만들 수 있습니다.

sudo /etc/cron.daily/mlocate

mlocate 명령은 데이터베이스가 수동으로 생성되거나 스크립트가 cron에서 실행될 때까지 작동하지 않습니다.

(가) 위치 중 하나에 대한 자세한 정보 또는 mlocate 명령 유형에 대해 man locate또는 man mlocate  터미널 창 및 Enter 키를 누릅니다있다. 두 명령에 대해 동일한 도움말 화면이 표시됩니다.

which 명령 사용

"which"명령은 명령이 실행될 때 호출되는 실행 파일의 절대 경로를 반환합니다. 이것은 데스크탑, 패널 또는 데스크탑 관리자의 다른 위치에서 프로그램에 대한 바로 가기를 만들기위한 실행 파일의 위치를 ​​찾는 데 유용합니다. 예를 들어 명령을 입력하면 which firefox 아래 이미지에 표시된 결과가 표시됩니다.

기본적으로 which 명령은 일치하는 첫 번째 실행 파일 만 표시합니다. 일치하는 모든 실행 파일을 표시하려면 -a다음 명령과 함께 옵션을 사용하십시오 .

어느-파이어 폭스

다음 이미지와 같이 한 번에 사용하여 여러 실행 파일을 검색 할 수 있습니다. 발견 된 실행 파일의 경로 만 표시됩니다. 아래 예에서는 "ps"실행 파일 만 찾았습니다.

참고 : which 명령은 현재 사용자의 PATH 변수 만 검색합니다. 일반 사용자로서 루트 사용자 만 사용할 수있는 실행 파일을 검색하면 결과가 표시되지 않습니다.

which 명령에 대한 자세한 내용을 보려면 터미널 창의 명령 프롬프트에 "man which"(따옴표 제외)를 입력하고 Enter를 누르십시오.

Whereis 명령 사용

whereis 명령은 명령에 대한 바이너리, 소스 및 매뉴얼 페이지 파일이있는 위치를 찾는 데 사용됩니다. 예를 들어 whereis firefox 프롬프트에 입력 하면 다음 이미지와 같은 결과가 표시됩니다.

실행 파일의 경로 만 표시하고 소스 및 매뉴얼 페이지의 경로는 표시하지 않으려면 -b옵션을 사용하십시오 . 예를 들어, 명령 whereis -b firefox/usr/bin/firefox결과 로만 표시됩니다 . 이는 프로그램의 소스 및 매뉴얼 페이지를 검색하는 것보다 프로그램의 실행 파일을 더 자주 검색 할 가능성이 높기 때문에 편리합니다. 소스 파일 ( -s) 만 검색 하거나 매뉴얼 페이지 ( -m) 만 검색 할 수도 있습니다 .

whereis 명령에 대한 자세한 내용을 보려면 man whereis 터미널 창에 입력하고 Enter를 누르십시오.

Whereis 명령과 which 명령의 차이점 이해

whereis 명령은 명령에 대한 바이너리, 소스 및 매뉴얼 페이지의 위치를 ​​표시하는 반면 which 명령은 명령의 바이너리 위치 만 표시합니다.

whereis 명령은 특정 디렉토리 목록에서 바이너리, 소스 및 man 파일을 검색하는 반면 which 명령은 현재 사용자의 PATH 환경 변수에 나열된 디렉토리를 검색합니다. whereis 명령의 경우 명령에 대한 매뉴얼 페이지의 FILES 섹션에서 특정 디렉토리 목록을 찾을 수 있습니다.

기본적으로 표시되는 결과와 관련하여 whereis 명령은 찾은 모든 것을 표시하는 반면 which 명령은 찾은 첫 번째 실행 파일 만 표시합니다. -awhich 명령에 대해 앞에서 설명한 옵션 을 사용하여 변경할 수 있습니다 .

whereis 명령은 명령에 하드 코딩 된 경로 만 사용하기 때문에 원하는 것을 항상 찾지 못할 수도 있습니다. whereis 명령에 대한 매뉴얼 페이지에 나열되지 않은 디렉토리에 설치되어 있다고 생각되는 프로그램을 검색하는 -a경우 시스템 전체에서 명령의 모든 항목을 찾는 옵션 과 함께 which 명령을 사용할 수 있습니다 .