“-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_name
和 file_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.
命令是:
find $HOME -path $HOME/$dir_name -prune -o -name "*$file_suffix" -exec cp {} $HOME/$dir_name/ \;
变量 dir_name
和 file_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.