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

如何用rsync将多层递归目录下的*.psd文件复制到扁平目录

用rsync批量复制多层目录下的PSD文件到单目录

当然有完美适配的rsync方案!刚好能解决你最多7层递归目录下批量提取所有.psd文件到单个目录的需求,甚至还能帮你处理同名文件的冲突问题,下面分两种场景给出具体命令:

基础版:直接复制(同名文件会覆盖)

如果不担心不同目录下的同名PSD文件互相覆盖,用这个最简命令就足够:

rsync -r --include='*.psd' --exclude='*' --max-depth=7 /path/to/your/source/dir/ /path/to/your/target/dir/

参数解释:

  • -r:递归遍历源目录的所有子目录(配合--max-depth=7限制在7层以内)
  • --include='*.psd':明确指定只包含.psd后缀的文件
  • --exclude='*':排除所有其他类型的文件和目录(注意顺序:必须放在--include之后,rsync的匹配规则是从上到下生效)
  • --max-depth=7:严格限制遍历的目录深度,刚好符合你最多7层的需求
  • 源目录末尾的/:必须加上,否则rsync会把源目录本身作为子目录复制到目标目录里,而不是复制源目录内的内容

进阶版:避免同名文件覆盖

如果不同层级的目录下存在同名的.psd文件,直接复制会导致覆盖丢失文件,这时候可以用--transform参数给文件名加上路径前缀(把路径中的/替换成_),比如src/a/b/file.psd会变成a_b_file.psd:

rsync -r --include='*.psd' --exclude='*' --max-depth=7 --transform='s|/|_|g' /path/to/your/source/dir/ /path/to/your/target/dir/

额外实用技巧:

  • 先模拟执行:不确定命令效果的话,加上--dry-run参数做模拟运行,只会输出要复制的文件列表,不会实际操作:
    rsync -r --dry-run --include='*.psd' --exclude='*' --max-depth=7 /path/to/your/source/dir/ /path/to/your/target/dir/
    
  • 保留文件属性:如果需要保留PSD文件的权限、创建时间等属性,把-r换成-a(归档模式,包含递归、权限保留、时间戳同步等功能):
    rsync -a --include='*.psd' --exclude='*' --max-depth=7 /path/to/your/source/dir/ /path/to/your/target/dir/
    

内容的提问来源于stack exchange,提问作者Charles Mosndup

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:32:12