해당 이름이 포함된 모든 파일이나 디렉터리를 find
검색하는 명령을 작성하려고 합니다 (명확성을 위해 슬래시가 추가됨).andreas
~$ find . -iname '*andreas*'
./Documents/Resume - Andreas/
./Documents/Resume - Andreas/Resume-Andreas-Renberg.odf
./Documents/Resume - Andreas/Resume-Andreas-Renberg.pdf
./Documents/Resume - Andreas/Resume-Andreas-Renberg-v2.pdf
./Documents/Resume - Andreas/Resume-Andreas-Renberg-v3.pdf
./Documents/Resume - Andreas/Resume-Andreas-Renberg-final.pdf
./Pictures/Trip with Andreas to Isengard/
./Pictures/Profiles/andreas-renberg.jpg
./.cache/junk/nothing here/hide-from-andreas.tar.gz
나거의정확히 내가 필요했던 것이지만, 그 목록에는 다른 스크립트에 문제를 일으키는 엄청난 중복이 있었습니다.
Find는 이미 디렉토리에 대해 알려주므로 해당 디렉토리에서 일치하는 모든 항목을 나열 ./Documents/Resume - Andreas/
하고 싶지는 않습니다 . find
출력이 다음과 같기를 원합니다.
~$ find . -iname '*andreas*' [command]
./Documents/Resume - Andreas/
./Pictures/Trip with Andreas to Isengard/
./Pictures/Profiles/andreas-renberg.jpg
./.cache/junk/nothing here/hide-from-andreas.tar.gz
답변1
당신은 할 수치다유형 일치목차:
find . -iname '*andreas*' -print -type d -prune
에서 man find
:
-prune True; if the file is a directory, do not descend into it.