将一个目录复制到另一个目录并创建中间目录

将一个目录复制到另一个目录并创建中间目录

我想复制整个/usr/share/zoneinfo/目录进入 /var/www/clients/client1/web5/./usr/share/zoneinfo/。 (/./为了清晰和格式化目的而添加)

目录 /var/www/clients/client1/web5/ 存在,但底层usr/共享/zoneinfo目录没有。

有没有办法用一个命令来做到这一点,还是我必须mkdir -p先打电话?

我以为cp --parents会这样做,但似乎它只在复制单个文件时有效,而不是整个目录。

答案1

由于您指定的是 的目标位置/var/www/clients/client1/web5/./usr/share/zoneinfo/,因此cp将首先查看以确保存在用于写入文件的目录。所以是的,您需要首先创建目录。但是,如果/var/www/clients/client1/web5/./usr/share/已经存在,您应该能够:

cp -pr /usr/share/zoneinfo /var/www/clients/client1/web5/./usr/share/zoneinfo

因为存在要写入目录的目标目录zoneinfo

答案2

rsync -a --relative成功了。

rsync -a --relative /usr/share/zoneinfo/ /var/www/clients/client1/web5/

信用去往unix_ninja这条推文

相关内容