![grep이 작동하지 않는 이유는 무엇입니까? [폐쇄]](https://linux55.com/image/116013/grep%EC%9D%B4%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
"<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