Lek*_*eyn 14

如果当前目录中有一个以 结尾的文件.rb,它将被 shell 展开。因此,如果您有一个名为“foo.rb”的文件,则执行的命令是find . -name foo.rb. (“找到一个名为 foo.rb 的文件”)

如果当前目录中有多个文件(例如“foo.rb”和“bar.rb”),情况会更糟。然后命令变为find . -name foo.rb bar.rb,这将导致 find 的参数错误。

为防止 shell 扩展 glob 模式*.rb,您必须将其引用(单引号或双引号都可以)或转义星号。以下命令具有等效的行为:

find . -name "*.rb"
find . -name '*.rb'
find . -name \*.rb
Run Code Online (Sandbox Code Playgroud)