从Linux shell中将多个目录复制到另一个多个目录



我想把几个目录复制到另一个目录。如何从shell命令提示符中执行此操作?例如:

Project
├── directory1
│   └── files1
├── directory2
│   └── files2
└── directory3
└── files3

:

Project
├── directory1
│   └── files1
├── directory2
│   └── files2
├── directory3
│   └── files3
├── directory1.copy
│   └── files1
├── directory2.copy
│   └── files2
└── directory3.copy
└── files3

尝试:

mkdir directory{1..3}.copy 
cp -r directory{1..3} directory{1..3}.copy

但是所有的目录(和里面的文件)都复制到directory3.copy

实际上,cp只接受第一个参数之前的所有参数作为源,最后一个参数作为目标。如果你想复制到多个地方,你需要一个循环。

for dir in ./*/.  # or for dir in directory{1..3}
do
cp -r "$dir" "$dir.copy"
done

最新更新