grep이 작동하지 않는 이유는 무엇입니까? [폐쇄]

grep이 작동하지 않는 이유는 무엇입니까? [폐쇄]

"<3" 문자열이 포함된 디렉터리에서 모든 파일을 찾으려고 합니다. 이 작업은 간단해야 합니다.

grep "<3" *

그러나 이것을 실행하면 인쇄됩니다.

grep: <3: No such file or directory

그런 다음 모든 파일을 grep하여 다른 것을 찾으십시오... (정확히 무엇인지는 모르겠지만 표시된 줄에는 3이 전혀 포함되어 있지 않습니다...)

-f이유: grep grep에 전달될 때 *이를 플래그로 처리하여 이 동작을 일으키는 파일이 내 디렉토리에 있는 것 같습니다 .

rm이 파일은 플래그로 간주되므로 일반적으로 삭제하려고 해도 소용이 없습니다 . Nick의 제안 덕분에 이 파일은 다음 명령을 사용하여 삭제할 수 있습니다.

rm ./-f

답변1

grep "<3" -- *

이를 사용하여 --많은 GNU 프로그램에 대한 옵션의 끝과 위치 인수의 시작을 결정할 수 있습니다. 따라서 -l파일이 손상되지 않습니다.

또 다른 옵션은

grep "<3" ./*

답변2

복사할 수 없음:

$ echo '<3' > foo
$ grep "<3" *
foo:<3

관련 정보