![이상한 명령 찾기](https://linux55.com/image/155476/%EC%9D%B4%EC%83%81%ED%95%9C%20%EB%AA%85%EB%A0%B9%20%EC%B0%BE%EA%B8%B0.png)
'를 사용하여 찾았습니다.찾다' 명령은 일부 불일치가 있는 것으로 보이는 개별 파일을 검색합니다. 예를 들어, 다음 단어가 포함된 특정 파일을 검색하고 싶습니다.종이그 이름으로. 입력하면 sudo find /mnt -iname *paper*
출력은 다음과 같습니다.
/mnt/data/MyPhotos/Wallpapers
그건 공평해요. 제가 원하는 건 그게 아니거든요. 그러나 입력하면 sudo find /mnt -iname "*paper*"
출력은 다음과 같습니다.
/mnt/data/MyMusic/FLV-Music/Joe_Jackson_Sunday_Papers_small.mp4
/mnt/data/MyMusic/FLV-Music/Status_Quo_Paper_Plane_medium.mp4
/mnt/data/MyPhotos/Wallpapers
이제 검색 중인 파일(두 번째 파일)이 표시됩니다. 그렇다면 첫 번째 경우에는 마지막 파일만 출력으로 표시되고 두 번째 경우에는 모든 파일에 문자열이 포함되는 이유는 무엇입니까?paper
그들의 이름으로 출력됩니다. 여기서 인용문이 왜 달라지나요?
답변1
따옴표가 없으면 쉘은 *
앞의 find
is를 구문 분석하고 glob을 확장합니다(가능한 경우). 따옴표를 사용하면 와일드카드가 발생하지 않습니다.
전시하다:
$ tree
.
├── Wallpapers
└── stuff
├── Newspapers
├── Wallflowers
└── Wallpapers
2 directories, 3 files
$ find stuff -iname *paper*
stuff/Wallpapers
$ find stuff -iname '*paper*'
stuff/Wallpapers
stuff/Newspapers