grep 在 centos 上的特定文件夹中不起作用?

grep 在 centos 上的特定文件夹中不起作用?

grep 命令有点奇怪。当我在邮件文件夹中时,它总是会显示帮助文本。起初,我以为我的语法错误,但它正在处理其父文件夹。可能是什么原因?TIA!

[xx]$ grep "abc" *.out
grep: invalid option -- '-'
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
[xx]$ cd ..
[xx]$ grep "abc" mail/*.out
mail/0940-cron-mail.out:News 3598...h...N

答案1

该目录中有一个以字符“-”开头的文件。

当您在目录中使用 grep 时,* 会扩展所有文件名,并且 grep 会将以 - 开头的文件名解释为选项,因此无法对其进行解析。

当您的 grep 包含目录路径时,* 仍会扩展文件名,但现在 - 位于路径+文件名的中间,因此不会被解释为命令行选项

相关内容