내 목표는 원격 컴퓨터에서 모든 pdf 파일을 찾는 것이므로 유용한 명령을 사용 find
합니다. 그래서 나는 입력
~ * .pdf 찾기
또는
~ "* .pdf"찾기
나는 아무것도 얻지 못했습니다. 나는 내 컴퓨터에서 똑같이하고 아무것도 얻지 못합니다. 컴퓨터의 메뉴에서 정기적으로 검색을 수행하며 pdf 파일이 상당히 많습니다. 누군가 내가 뭘 잘못하고 있는지 말해 줄래?
답변
find
쓸모가 없습니다. 당신은 그것을 올바르게 사용하지 않습니다.
시험:
find . -type f -iname '*.pdf'
답변
findutils 에 대한 문서를 살펴보십시오 . 이 find
명령은 엄청나게 강력한 명령이며 결과적으로 다소 복잡한 인터페이스를 가지고 있습니다. 당신이 원하는 것을 할 수 있습니다 :
find . -type f -iname '*.pdf'
위의 명령은 “.pdf에서 대소 문자를 구분하지 않는 이름이 * .pdf 인 파일 유형의 항목에 대해. find 명령은 실제로 파일 이름을 인쇄하는 대신 또는 파일 이름을 찾아서 찾은 파일에서 명령을 실행하는 데 사용할 수 있습니다. 당신의 목적을 위해, 그러나, 당신은에 자신을 더 편안하게 찾을 수 있습니다 찾을 당신이 사용 데이터베이스의 위치를 구축했다 가정 – 명령, updatedb에를 – 매우 쉽게 파일을 찾을 수 있습니다. 예를 들면 다음과 같습니다.
locate '*.pdf'
locate는 파일 이름 색인 (locate 데이터베이스)을 사용하는 반면, find는 각 호출에 대한 계층 구조를 따라 가기 때문에 locate 명령이 일반적으로 find 명령보다 빠르다는 것을 알 수 있습니다.
답변
검색 대상을 나타내는 술어가 누락되었습니다 (예 🙂 -name
.
홈 디렉토리에서 이름으로 찾으려면 다음을 수행하십시오.
find ~ -name \*.pdf
와일드 카드 *
는 이스케이프 처리되어야합니다. 그래야 find가 손을 잡기 전에 쉘이 해석하지 않습니다. 사용 '*.pdf'
과 "*.pdf"
같은 영향을 미칠 것입니다 \*.pdf
.
대소 문자를 구분하지 않으려면 :
find ~ -iname \*.pdf
결과를 파일로만 정리하려면 (이름 표현식이이를 대신하여 처리하지만 이상한 이름의 디렉토리가있는 경우) :
find ~ -type f -iname \*.pdf
찾기가 심볼릭 링크를 따르는 지 확인하려면 (보통 검색 할 때 직접 수행하고 싶습니다) :
find ~ -follow -type f -iname \*.pdf
찾은 파일로 작업을 수행하려면 stdout 리디렉션을 사용하여 파일로 덤프 > filename
하거나 (예 : 끝에 압정 ) -exec
옵션을 사용하여 명령을 실행할 수 있습니다 (자세한 내용은 맨 페이지 참조). 후자는 한 번에 각 파일에 대해 명령을 실행합니다. xargs
찾은 파일을 한 번에 또는 한 번에 큰 덩어리로 다른 명령에 대한 인수로 전달 하는 것이 더 빠릅니다 . 예를 들어, 임시 파일 (인덱싱되지 않은)이 헤더 파일을 통과하는 경우 :
find ~ -follow -type f -name \*.h | xargs grep -nH "identifier"
공백이있는 파일 및 디렉토리가있는 경우 마지막 명령이 올바르게 작동하도록하는 마지막 확장명 :
find ~ -follow -type f -name \*.h -print0 | xargs -0 grep -nH "identifier"
답변
답변
나는 찾기와 grep을 결합하는 데 사용했습니다.
찾기 . . | grep -i “.pdf”
어쩌면 최고 효율은 아니지만 잘 작동합니다.
답변
지난 x 일 이내에 다운로드해야하는 파일 찾기
find ~ -type f -iname '*.pdf' -mtime -1
당신이 당신의 가정에있는 파일을 PDF 찾을 ~
확장자를 가진 디렉토리 아래에 .pdf
대문자와 소문자 (전에서 그게 전부에 관계없이 iname
및 1 일 전 내가 추가 한 때문에 변경 한) mtime -1
; mtime에 -60을 입력하면 지난 60 일이됩니다.
답변
“found”파일 내에서 검색을 실행하려면 다음과 같이 구성됩니다.
find <dir> -type f -iname <name> -exec grep -H <string> {} \;
exec 명령은 이스케이프 된 “;”로 끝나야합니다. 그리고 -H는 grep이 “string”이있는 파일 내의 행 외에 파일 경로를 인쇄하기 위해 필요합니다.