리눅스에서 디렉토리를 찾는 방법?


453

Suse Linux 10.3 과 함께 VPS가 있습니다.

SSH / putty 를 통해 로그인했으며 웹 파일이있는 위치를 찾으려고합니다.

httpdocs 라는 디렉토리에서 FTP를 통해 업로드하고 있기 때문에이 디렉토리가 어딘가에 있다고 가정합니다.

내 Google 검색 에서이 작업을 수행하도록 지시했으며 내 루트 디렉토리로 이동하여 다음을 입력하십시오.

find httpdocs -type d

" No such file or directory (이러한 파일 또는 디렉토리 없음) "라고 표시되어 있습니다.

이 디렉토리를 어떻게 찾을 수 있습니까?


4
누군가 궁금해하는 경우 질문의 명령 -type d은 디렉토리 항목에서 모든 디렉토리 ( )를 찾습니다 ( httpdocs일반적으로 반드시 디렉토리는 아니지만 현재 작업 디렉토리와 관련됨). httpdocs시스템의 루트 디렉토리에 디렉토리 항목이 없으므로 검색 시작점 이 없기 때문에 오류 메시지와 함께 실패합니다 .
Daniel Beck

답변:


609

그것은:

find / -type d -name 'httpdocs'

첫 번째 매개 변수 "/"는 찾을 위치이며이 경우 "/"는 전체 시스템입니다.

-name은 대소 문자를 무시하기 위해 -iname 일 수 있습니다.

또한 -type은 필수가 아닙니다

사용 : 더 많은 옵션을 찾는 사람


2
find / -name 'httpdocs'는 큰 감사를합니다
Edward Tanguay

91
간단한 검색에는 문제가되지 않지만보다 복잡한 찾기 명령의 경우 명령 줄에서 순서대로 항목이 평가된다는 점에 유의해야합니다. 따라서 작업 속도를 높이기 위해 -name 앞에 -type d (디렉토리 만)를 사용하는 것이 좋습니다. 다시 말하지만, 여기서는 그다지 중요하지 않을 수 있지만,보다 복잡한 검색에 들어가면 검색 속도가 상당히 향상 될 수 있습니다.
Dominic Eidson 2016 년

14
실제로, -name테스트는 대부분의 다른 테스트보다 빠릅니다 -name. 디렉토리에서 이미 디스크에서로드 된 디렉토리 목록과 비교되므로 다른 테스트 stat(2)는 파일 정보를 얻기 위해 수행해야합니다 . stat()파일을 처음 호출 한 후 다음 테스트는 메모리에서 가져옵니다 (예 :) -type f -mtime -10.
Arcege

24
전체 파일 시스템, 특히 서버에서 찾기를 수행하려는 경우 일반적으로 nice찾기가 더 중요한 프로세스에서 너무 많은 자원 을 사용 하지 않도록하는 것이 좋습니다 .nice find / ...
Arcege

16
검색 결과가 모든 권한 오류에 숨겨지지 않도록 2> / dev / null을 추가합니다.
Jason Yeo

63

이 명령은 당신이 찾고있는 것을 얻을 것입니다 :

find / -type d -name httpdocs

서버의 루트에서 httpdocs라는 이름의 디렉토리를 검색하거나 현재 디렉토리에서 검색하려는 경우 '/'를 '.'로 바꾸십시오.

시도 할 수있는 또 다른 명령은 다음과 같은 작업을 수행하는 것입니다.

locate httpdocs

httpdocs가 나에게 말한다 찾기 "를 찾습니다 명령을 찾을 수 없습니다"
에드워드 Tanguay

4
"locate"명령을 사용하는 사용자 (시스템에 존재 함)는 조회 한 데이터베이스가 최신인지 확인하십시오. 일반적으로 일부 크론 작업이 처리합니다. 그렇지 않으면 "updatedb"(루트)를 실행하십시오. 그런 다음 필요한 "locate <somefile>"을 실행하십시오. 최근에 추가 한 파일 / 디렉토리를 찾는 데 필요합니다.
David Ramirez

찾기 +1 그것은이다 훨씬 빠르지 만 인덱스가 최신 인 경우에만. 다행히 "httpdocs"와 같은 항목은 위치를 자주 변경하지 않습니다. 머신에서 파일을 반복적으로 검색하려는 경우 업데이트 된 cron 작업을 설정하는 데 몇 분이 소요됩니다.
Doug Harris

1
또한 대부분의 경우 찾기는 해당 디렉토리의 모든 100k 파일이 표시되므로 너무 많은 결과를 반환합니다. 이 특별한 경우에 모든 사용자가 100 또는 1000의 파일을 가진 자체 httpdocs를 가지고 있다면 OP가 원하는 결과를 잃을 것입니다.
Jistanidiot

찾기 +1 ... 데이터베이스를 업데이트하여이 명령이 매우 유용합니다 ... 좋은 생각입니다.
nicorellius

27
find / -type d -name httpdocs 2> /dev/null

이렇게하면 루트 사용자로서이 작업을 수행하지 않을 때 발생할 수있는 모든 오류 메시지가 제거됩니다. 이런 식으로하는 것이 좋습니다.


2
2> /dev/null옵션은 매우 유용합니다. 그렇지 않으면 원하는 결과를 볼 어려울 수 있습니다 ...
트립 Notschnabel


13

대소 문자를 구분하지 않는 패턴을 검색하고 와일드 카드 (*,? 등)를 사용하려면 -iname 매개 변수를 알아야합니다.

두 가지 예 :

대소 문자를 구분하지 않고 "Linux"문자열을 포함하는 / root에서 모든 파일을 검색하십시오.

find  /root -type f -iname "*linux*"

대소 문자를 구분하지 않고 "Linux"문자열을 포함하는 / root에서 모든 디렉토리를 검색하십시오.

find  /root -type d -iname "*linux*"

여기에서 추출 :

http://www.sysadmit.com/2015/12/linux-buscar-ficheros-directorios-con-find.html


이 질문은 이름을 알고있는 디렉토리를 찾는 방법이 아니라 이름을 알고있는 디렉토리를 찾는 방법에 관한 것입니다. 게다가 (6 년 전부터!) 답변 -iname은 대소 문자를 구분하지 않는 대안으로 이미 언급 되어 -name있습니다.
G-Man

9

당신은 거의 그것을 가지고 있습니다. 올바른 구문은 다음과 같습니다.

find / -type d -name httpdocs

디렉토리는 /var/www/


"경로가 표현보다 먼저 나와야한다"
Edward Tanguay 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.