Linux 在命令末尾使用星号

Linux 在命令末尾使用星号,linux,shell,unix,wildcard,Linux,Shell,Unix,Wildcard,我知道在正则表达式中使用星号,但这行末尾的星号是什么意思 find . -type f | grep -sl 'word' * 我知道我可以使用 find . -type f | xargs grep -sl 'while' 末尾的星号*用于按字典顺序检入目录中的文件列表。在末尾使用*意味着整个目录,因此该命令接受find的输出,并按字母顺序将其作为参数赋予grep?@DPosnas No.find输出被忽略grep仅在被告知的情况下使用stdin-这可以通过根本不提供任何文件或提供-作为文

我知道在正则表达式中使用星号,但这行末尾的星号是什么意思

find . -type f | grep -sl 'word' *
我知道我可以使用

find . -type f | xargs grep -sl 'while'

末尾的星号
*
用于按字典顺序检入目录中的文件列表。

在末尾使用*意味着整个目录,因此该命令接受find的输出,并按字母顺序将其作为参数赋予grep?@DPosnas No.
find
输出被忽略
grep
仅在被告知的情况下使用stdin-这可以通过根本不提供任何文件或提供
-
作为文件名来实现。因此
grep
是否迭代当前目录以获取文件名并检查模式?否(在此调用中,
grep
不迭代当前目录);shell将
*
扩展为文件名的排序列表
grep
只读取给定的文件名列表。如果您有
-r
选项,则
grep
将扫描目录。您仍然在浪费
find
查找姓名的精力。用
+
检查
-exec
选项和
xargs
(和
-print0
-0
)。有很多答案,涵盖了所有这些。