“-path ... -prune”的目的是什么?

What is the purpose of "-path ... -prune"?

命令是:

find $HOME -path $HOME/$dir_name -prune -o -name "*$file_suffix" -exec cp {} $HOME/$dir_name/ \;

变量 dir_namefile_suffix 被分配了目录路径和脚本前面的任意单词。

我不明白 -path $HOME/$dir_name 的目的是什么,或者它如何影响其余命令的解释方式。

-path $HOME/$dir_name -prune

从搜索中排除 $HOME/$dir_name;这是有道理的,因为否则

-name "*$file_suffix" -exec cp {} $HOME/$dir_name/ \;

之前会将 select 个文件复制到 $HOME/$dir_name 并尝试再次复制它们。

-path 谓词允许您指定要匹配的模式的条件。它有点类似于 -name 谓词,但适用于完整路径,而不仅仅是文件名 (basename)。

您的特定命令将 -prune 应用于特定的子路径,因此它将避免扫描该特定的子目录。如果此谓词失败,它将继续处理 -o 之后的谓词(如“或”)。

你还是应该quote your variables.