将多个目录复制到新目录的更好方法


33

在命令行上是否有更好的方法可以基本上完​​成以下操作,但只需一个命令

cp -r css/ ar/
cp -r images/ ar/
cp -r js/ ar/
cp -r backups/ ar/

我只是用分号将它们串在一起。

Answers:


63

将文件夹复制到另一个文件夹(文件夹中的文件夹):

cp -r css images js backups ar/

注意:这不同于仅复制内容本身(文件夹中文件夹的内容):

cp -r css/ images/ js/ backups/ ar/

4
斜线有所不同!总是被怀疑,从来不知道
PeterPerháč17年

2
斜线对我的测试没有影响。cp不是rsync。但是cp -r css/. images/. ar/确实复制没有目录的内容。我的cp版本是“ cp(GNU coreutils)8.29”。
sourcejedi

1

答案很简单,并且可以在Debian上运行“实际上是我这样做的”(经过测试),可以说您在/ etc中,并且想要在格式化硬盘(出于某种原因)之前复制一些文件和文件夹,输入以下内容,下面提到的所有内容都将复制到/ mybackups /文件夹中:

sudo cp -r -a apt/ bash.bashrc environment hosts init.d/ init/ nginx/ proxychains.conf sudoers sysctl.d/ profile.d/ grub.d/ /boot/grub/ /opt/ /root/ /var/www/ /mybackups/

你可以在上面看到,我试图从外部复制文件夹,以及所指向的位置一样的/ boot / grub的//选择/和它的工作!


1
我相信-r不需要,因为-a已包含它(通过:man)。
DavidPotočnik18年

-2

您不能cp仅使用命令复制两个目录。

您可以使用-roption 递归复制。

例如:

cp -r <source> <destination> 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.