![grepが機能しないのはなぜですか? [閉鎖]](https://linux33.com/image/116013/grep%E3%81%8C%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%AA%E3%81%84%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
"<3"文字列を含むディレクトリ内のすべてのファイルを見つけようとします。これは簡単なはずです。
grep "<3" *
しかし、これを実行すると印刷されます。
grep: <3: No such file or directory
その後、すべてのファイルをgrepして他のものを見つけます...
-f
理由:grep grepに渡されると、*
これをフラグとして処理してこの動作を引き起こすファイルが私のディレクトリにあるようです。
rm
このファイルはフラグと見なされるため、通常は削除しようとしても役に立ちません。 Nickの提案のおかげで、このファイルは次のコマンドを使用して削除できます。
rm ./-f
答え1
grep "<3" -- *
これを使用して、--
多くのGNUプログラムのオプションの終わりと位置引数の開始を決定できます。したがって、-l
ファイルは破損しません。
別のオプションは
grep "<3" ./*
答え2
コピーできません:
$ echo '<3' > foo
$ grep "<3" *
foo:<3