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

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

파일 이름에 별표가 있는 파일을 어떻게 찾나요? 질문하는 또 다른 방법은 와일드카드로 작동하지 않도록 별표를 어떻게 얻나요?

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

$ 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

*백슬래시를 사용하여 for를 벗어날 수도 있지만find

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

작은따옴표는 를 확인하는 데 사용되며 *에 대한 특별한 의미를 잃습니다 [.\껍질.

답변2

조심하세요. find(1)이 불평하는 것은 꽤 다른 것입니다. 현재 디렉토리에 a, b, 파일이 있다고 가정해 보겠습니다 c. 예를 들어 전화하는 경우:

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

얻는 것은 무엇 find입니까 ./ -type f ( -iname a b c )(쉘은 결과 명령줄을 전달하기 전에 '*'를 확장하고 괄호는 인용됩니다. 에 대해서도 동일한 결과가 나타납니다 ***). 당신이 쓰는 경우 :

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

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

관련 정보