找不到递归

Sea*_*iao 12 linux shell find

我在目录"home",我运行此命令

find . -iname *.mov
Run Code Online (Sandbox Code Playgroud)

它产生了

./root/movies/Corey/holtorf/Intro.mov
Run Code Online (Sandbox Code Playgroud)

现在,我"cd .."并运行相同的命令

find . -iname *.mov
Run Code Online (Sandbox Code Playgroud)

这次"Intro.mov"不在结果中.这背后的原因是什么?什么是递归搜索当前目录中以".mov"结尾的每个文件的命令?谢谢.

ypn*_*nos 22

在参数中使用通配符时,它会被shell扩展.为防止这种情况,您需要编写"*.mov".

在您的情况下,shell 将参数传递给find 之前会扩展到它找到的任何文件,然后获取文件列表并且不会根据原始模式进行搜索.


dog*_*ane 19

-follow如果您的主目录实际上是符号链接,则可能需要添加.同时引用模式,否则shell会在传递之前尝试扩展它find.

find . -iname "*.mov" -follow
Run Code Online (Sandbox Code Playgroud)