Macos 使用find和cp将.jpg文件从许多目录复制到一个新路径时出现问题
我尝试了搜索,但找不到我具体问题的答案。 当我使用 查找/恢复_文件“*.jpg”-类型f-exec cp{}/out\ 要从/recovered_files目录中的目录复制所有.jpg文件,/out目录将填充源目录中的每个文件(jpg、txt、xml等)。 有人能解释一下我的愚蠢之处吗,拜托Macos 使用find和cp将.jpg文件从许多目录复制到一个新路径时出现问题,macos,bsd,Macos,Bsd,我尝试了搜索,但找不到我具体问题的答案。 当我使用 查找/恢复_文件“*.jpg”-类型f-exec cp{}/out\ 要从/recovered_files目录中的目录复制所有.jpg文件,/out目录将填充源目录中的每个文件(jpg、txt、xml等)。 有人能解释一下我的愚蠢之处吗,拜托 非常感谢,Mark。您目前所做的工作相当于为每个文件调用cp/dir/dir/dir/file.jpg/out,这将把文件复制到/out。因此,所有文件都放在同一个目录中 rsync允许筛选器仅选择要复制
非常感谢,Mark。您目前所做的工作相当于为每个文件调用
cp/dir/dir/dir/file.jpg/out
,这将把文件复制到/out
。因此,所有文件都放在同一个目录中
rsync
允许筛选器仅选择要复制的特定文件。将从
和更改为
到以下目录中的相应目录:
rsync -r from/* to --include=*.jpg --filter='-! */' --prune-empty-dirs
这一解决方案值得称赞
编辑:更改为rsync
解决方案。原件如下:
find from -name "*.jpg" -type f -exec mkdir -p to/$(dirname {}) \; -exec cp --parents {} to \;
您应该用适当的位置替换
from
和to
,如果from
以/
开头,则此表单将无法正常工作。如果需要,只需先将cd
刻录到/
。此外,您最终会看到到中的所有文件都位于from
的整个目录结构下,但您可以将它们再次移出。这很有魅力!先生,你是一个了不起的人,我感谢你的时间和专业知识!!!非常感谢。NP很高兴能帮忙。如果你认为答案能回答问题,请接受。