파일 이름에 별표(*)가 있는 파일 찾기

파일 이름에 별표(*)가 있는 파일 찾기

파일 이름에 별표가 있는 파일을 찾는 방법은 무엇입니까? 질문하는 또 다른 방법은 별표가 와일드카드 역할을 하는 것을 어떻게 막을 수 있는가입니다.

일반적으로 와일드카드의 경우 다음과 같이 합니다.

$ find ./ -type f \( -iname \*.jpg \)

탈출하지 않으면 *다음과 같은 결과가 나타납니다.

$ find ./ -type f \( -iname * \)
find: paths must precede expression: .....
find: possible unquoted pattern after predicate `-iname'?

오류에 인용해야 한다고 나오므로 또는 중 하나를 *시도했지만 이는 와일드카드로도 작동합니다.find ./ -type f \( -iname "*" \)find ./ -type f \( -iname '*' \)

답변1

올바른 해결책은 대괄호를 사용하는 것 같습니다 [ ]. 물론 포스팅하고 5분만에 해결했습니다. 이것이 미래에 누군가에게 도움이 되기를 바랍니다.

$ find . -name '*[*]*' -type f

*백슬래시를 사용하여 이스케이프 할 수도 있지만find

$ find . -name '*\**' -type f

작은 따옴표는 그들이 가지고 있는 특별한 의미를 결정 *하고 [잃기 위해 사용됩니다.\껍데기.

답변2

조심하세요. find(1)은 완전히 다른 것에 대해 불평합니다. 현재 디렉토리에 파일이 있다고 가정합니다 . a예 를 들어 다음과 같습니다.bc

find ./ -type f \( -iname * \)

당신이 얻는 것은 find( ./ -type f ( -iname a b c )쉘은 생성된 명령줄을 전달하기 전에 '*'를 확장하고 대괄호는 인용됩니다. 정확히 동일한 결과입니다 ***). 당신이 쓰는 경우 :

find ./ -type f \( -iname \* \)

그것은 ./ -type f ( -iname * ),

관련 정보