Mac终端如何将多个目录批量复制到多个目标目录?
解决目录批量复制问题
之前命令的核心错误
- Shell中多个参数用空格分隔,不能用逗号
- 大括号扩展语法要求元素间用逗号分隔且无空格,比如
{a,b}而非{a b} - 路径前加
/会变成绝对路径,你要操作的是当前folderX下的子目录,不需要开头的/
正确的实现方法
方法1:逐个复制(直观易理解)
确保当前工作目录是folderX,执行以下命令:
# 复制到folder2 cp -r folder1/folderA folder1/folderB folder2/ # 复制到folder3 cp -r folder1/folderA folder1/folderB folder3/ # 复制到folder4 cp -r folder1/folderA folder1/folderB folder4/
方法2:循环批量处理(高效适合多目标)
用Shell循环一次性处理所有目标目录:
for dest in folder2 folder3 folder4; do cp -r folder1/folderA folder1/folderB "$dest"/ done
方法3:大括号扩展(简洁写法,bash/zsh支持)
利用Shell的大括号扩展语法,一行完成复制:
cp -r folder1/folderA folder1/folderB folder{2,3,4}/
关键参数说明
-r:必须添加,递归复制目录及其所有内容- 目标路径结尾的
/:确保目标是目录(若目录不存在,cp会直接报错,避免误将目录复制为文件) - 循环中的
"$dest":加双引号是为了兼容目录名含空格的场景,养成好习惯
内容的提问来源于stack exchange,提问作者emma-A
相关产品推荐
相关产品推荐

