我试图查找目录中包含字符串“<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