이름을 기준으로 파일의 경로를 찾는 방법은 무엇입니까?


22

settings.xml우분투 컴퓨터에서 파일 을 찾으려고 합니다. 나는 그것이 어디에 있고 어떤 디렉토리에 있는지 전혀 모른다.

나는 이것을 사용하려고 시도했다-

ls -R | grep settings.xml

그러나 그것은 나에게 전체 경로를 보여주지 않습니다 .. 내가 시도해야 할 다른 명령이 있습니까?


4
해결책이 출력을 구문 분석하는 것이라고 생각할 때마다 ls거의 확실하게 잘못된 방법을 사용하고 있습니다.
terdon

답변:


23

빠른 검색 (하지만 확정적이지 않은 경우) :

locate -br '^settings.xml$'

보낸 사람 man locate:

   locate  reads  one or more databases prepared by updatedb(8) and writes
   file names matching at least one of the PATTERNs  to  standard  output,
   one per line.

   -b, --basename
          Match  only  the base name against the specified patterns.  This
          is the opposite of --wholename.
   -r, --regexp REGEXP
          Search for a basic regexp REGEXP.  No PATTERNs  are  allowed  if
          this  option  is used, but this option can be specified multiple
          times.

^$누구의 이름 만 파일 확인 settings.xml및 이름이 아닌 파일 이 포함되어 settings.xml 인쇄됩니다.

의 데이터베이스를 업데이트 / 빌드하려면 updatedb(as root)를 처음으로 실행해야 할 수도 있습니다 locate.


@terdon, 내가 찾고에 대해 생각 적이 없다, 나를 놀라게 man locate하기 전에! 간단한 검색 도구라고 가정합니다. 대단히 감사합니다.
user.dz

예, 맨 페이지를 처음 읽었을 때의 반응이었습니다. :)
terdon

4
그것의 역할에 주목할 필요가있다 updatedb-이 명령을 locate어쨌든, 자주 나를 위해, 그없이 실패
RM-반다

@ rm-vanda, 언급하도록 답변을 업데이트했습니다 updatedb. 고맙습니다.
user.dz

4
locate '*/settings.xml'아마도 locate(사용 가능한 경우) 다양한 구현 중에서 더 이식성이 좋을 것입니다 .
Stéphane Chazelas

15

파일 시스템을 통한 느리지 만 꾸준한 검색이지만 결정적입니다.

find / -xdev -name settings.xml

시간이 걸리고 일부 권한 오류가 발생하지만 도착할 수 있습니다. 어디에 있는지 더 잘 알고 있다면 첫 번째 디렉토리를 /에서/where/you/guess


4
2>/dev/null명령의 끝에 추가 하면 stderr을 널 장치로 경로 재지 정하여 모든 오류 출력이 억제됩니다.
Tanner Swett

2
-xdev: 다른 파일 시스템에서 디렉토리를 내리지 마십시오.
Pablo A

1

예:

$ locate settings.xml
/usr/share/mime/application/x-cisco-vpn-settings.xml

0

찾고있는 것을 정확히 모르는 경우 tree는 또 다른 좋은 방법이며 조금 더 빠릅니다.

tree -f / | grep settings.xml

다른 유용한 플래그 : -igrep -h에서 사람이 나무에서 읽을 수 있도록 경우를 무시합니다.

-맨 페이지에는 유용한 옵션이 많이 있습니다!


6
좋은 생각 tree(1)은 아닙니다. 파일의 ASCII 아트 트리를 표시 한 다음이 파일을 잘라 grep(1)냅니다.
vonbrand

1
예,를 사용하려는 경우 더 빠른 것을 tree사용할 수도 find . type -f있습니다.
terdon

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.