You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

复制JPG文件时如何保留原目录结构与文件属性

复制JPG文件时如何保留原目录结构与文件属性

嗨,这个需求用rsync来处理简直是完美适配,比你之前用的find+cp要省心太多,它天生就支持保留目录结构和文件属性,而且命令也更简洁。

推荐方案:用rsync实现

直接用这条命令就行:

rsync -av --include='*.JPG' --exclude='*' /path/from/dirA/ /path/to/dirB/

我给你拆解下关键参数的作用:

  • -a:归档模式,会自动保留文件的权限、时间戳、所有者等所有属性,同时递归处理子目录,完全符合你要保留结构和属性的需求
  • -v:verbose模式,能实时看到复制的文件列表,方便你确认进度或者排查问题
  • --include='*.JPG':明确指定只复制JPG格式的文件
  • --exclude='*':排除所有其他类型的文件,确保只有JPG被复制

如果后续你需要增量复制(比如只同步新增或修改过的JPG),直接重复运行这条命令就行,rsync会自动跳过已经存在且未修改的文件,效率很高。

备选方案:改进find+cp的方式

如果你更习惯用find命令,也可以这样修改来实现需求:

find /path/from/dirA/ -name "*.JPG" -exec sh -c '
  # 提取原文件的相对路径,去掉目标目录的前缀
  dest_path="/path/to/dirB/${1#/path/from/dirA/}"
  # 自动创建目标文件所在的目录(如果不存在)
  mkdir -p "$(dirname "$dest_path")"
  # 复制文件并保留属性
  cp -a "$1" "$dest_path"
' sh {} \;

这里的cp -a和rsync的-a作用类似,会保留文件的所有属性;mkdir -p则确保目标目录结构被自动创建,不会因为目录不存在导致复制失败。

备注:内容来源于stack exchange,提问作者SEU

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 08:57:47