Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 将文件复制到备份目录保留文件夹结构_Linux_Bash_Shell_Command Line Interface - Fatal编程技术网

Linux 将文件复制到备份目录保留文件夹结构

Linux 将文件复制到备份目录保留文件夹结构,linux,bash,shell,command-line-interface,Linux,Bash,Shell,Command Line Interface,我必须将目录中的文件复制到其备份目录,保留文件夹结构。例如,MyFolder/Test/aaa中的文件aaa到.MyFolder.bck/Test/aaa 我试着用 cp --parents MyFolder/Test/aaa .MyFolder.bck; 但是结果是.MyFolder.bck/MyFolder/Test/aaa,而不是.MyFolder.bck/Test/aaa(这是我想要的)。为什么不使用两个命令 cd MyFolder && cp --parents /T

我必须将目录中的文件复制到其备份目录,保留文件夹结构。例如,
MyFolder/Test/aaa
中的文件
aaa
.MyFolder.bck/Test/aaa

我试着用

cp --parents MyFolder/Test/aaa .MyFolder.bck;

但是结果是
.MyFolder.bck/MyFolder/Test/aaa
,而不是
.MyFolder.bck/Test/aaa
(这是我想要的)。

为什么不使用两个命令

cd MyFolder && cp --parents /Test/aaa .MyFolder.bck;

Linux也有一些同步实用程序,甚至用于备份目的,例如rsync、rdiff备份、synkron。。。更不用说当地风投的优势了。。。你不应该重新发明轮子

您需要将
cd
复制到目录中,然后复制文件:

(cd MyFolder && cp --parents Test/aaa ../.MyFolder.bck)
命令周围的括号使其在子shell中运行,而不是在当前shell中运行。这样做的好处是,您不必在以后将
cd
放回原始目录。

我喜欢使用“rsync”来实现这一点

rsync-av MyFolder/.MyFolder.bck/


确保使用后面的斜杠,因为它们告诉rsync这两个参数都是“顶级”目录(也就是说,不要在.MyFolder.bck中创建另一个MyFolder)。

谢谢!我有这个,但我找不到正确的方法。