
다음과 같은 파일을 찾으려고 합니다.제1권.
내 테스트에서는 앞서 언급한 파일을 찾으려고 하는데 이번 테스트에서는 해당 파일이 어디에 있는지 알 수 없습니다.
시도했지만 find / -iname book1
출력이 없습니다.
파일이 어디에 있는지 모르는 경우 명령줄을 사용하여 book1이라는 파일을 어떻게 찾나요?
편집하다:
내 시나리오는 아래에 더 자세히 설명되어 있습니다.
- 파일 확장자를 알 수 없습니다.
- 정확한 이름(예: 대문자, 숫자 등)을 알 수 없습니다.
- 파일 위치를 알 수 없습니다.
답변1
첫째, 인수는 -iname
쉘입니다.무늬. 패턴에 대한 자세한 내용은 다음에서 확인할 수 있습니다.배쉬 매뉴얼. 요점은 find
실제로찾다파일의 파일 이름은 지정된 패턴과 일치해야 합니다. 대소문자를 구분하지 않는 문자열 book1
일치를 만들려면 다음과 같이 Book1.gnumeric
추가해야 합니다 .*
find / -iname 'book1*'
또는 전체 이름을 지정하세요.
find / -iname 'Book1.gnumeric'
둘째, 파일 이름 대소문자를 무시 -iname
하게 되므로 지정하면 find 등도 수행할 수 있습니다 . 찾고 있는 파일이 호출되었다고 확신하는 경우 but을 사용하지 않는 것이 더 빠릅니다.find
-iname book1
Book1
bOok1
Book1.gnumeric
-iname
-name
find / -name 'Book1.gnumeric'
셋째, 앞서 언급한 패턴을 인용하는 것을 기억하세요.다른 답변.
마지막으로 파일을 찾으시겠습니까?
어디에나당신의 시스템에? 찾고 있는 파일이 실제로 $HOME
작업했거나 어딘가에서 다운로드했다면 해당 파일이 디렉터리에 있을 수도 있습니다. 다시 말하지만, 훨씬 더 빠를 수도 있습니다.
편집하다:
질문을 수정하신 것으로 확인되었습니다. 전체 파일 이름, 대문자 사용 및 위치를 실제로 모르는 경우 다음과 같이 사용해야 합니다.
find / -iname 'book1*'
또한 루트가 아닌 사용자로 호출할 경우 나타나는 2>/dev/null
모든 오류 및 기타 오류를 숨기려면 줄 끝에 넣는 것이 좋습니다 .*permission denied*
find
find / -iname 'book1*' 2>/dev/null
그리고 단일 파일을 찾고 있다고 확신하고 시스템에 기준과 일치하는 파일이 하나만 있는 경우 find
첫 번째 일치하는 파일을 찾은 후 종료하도록 지시할 수 있습니다.
find / -iname 'book1*' -print -quit 2>/dev/null
답변2
명령 을 시도해 볼 수 있습니다 locate
. 더 빠른 검색을 위해 파일 이름 데이터베이스를 사용합니다.
일치하는 모든 파일을 검색 *book1*
하고 대소문자를 무시하려면 다음을 사용할 수 있습니다.
locate -i book1
파일을 검색하고 싶다면시작book1
와일드카드를 직접 작성해야 합니다 .
locate -i 'book1*'
보다 훨씬 빠르지만 find
데이터베이스를 마지막으로 새로 고친 시점만큼만 최신 상태입니다.
답변3
이라는 파일이 있고 book1.something
파일 위치, 의 정확한 값 something
, 파일 이름의 대문자 사용 패턴을 모두 알 수 없는 경우:
find / -iname 'book1.*'
확실히 아는 것이 파일 이름에 단어가 포함되어 있다는 것이라면 book
다음을 사용하여 훨씬 더 큰 목록을 생성할 수 있습니다.
find / -iname '*book*'
인수는 -name
쉘 글로브 패턴입니다. 파일이 있는 디렉토리에서 다음을 비교하십시오.
$ ls Book1
ls: cannot access 'Book1': No such file or directory
$ ls Book1.*
Book1.gnumeric
이는 에서 수행하는 검색 종류를 나타냅니다 -name
. 이 -iname
옵션은 단순히 대소문자를 구분하지 않는 버전을 허용합니다.
답변4
Zsh를 사용하면 glob 패턴을 사용할 수 있으므로 이 방법도 작동합니다.
ls -a /**/book1
그러면 파일이라는 파일이 있는 모든 위치를 찾습니다 book1
.
내 테스트에서는 이 방법이 를 사용하는 것보다 더 빠른 것으로 보이며 find
, 결과도 거의 또는 전혀 생성되지 않습니다.사용자 권한 오류루트 권한 없이 실행할 때
보다수동.