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

时间:2013-04-25 08:03:22

标签: linux bash shell command-line-interface

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

中的文件.MyFolder.bck/Test/aaa

我尝试使用

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

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

3 个答案:

答案 0 :(得分:1)

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

(cd MyFolder && cp --parents Test/aaa ../.MyFolder.bck)

命令周围的括号使其在子shell中运行,而不是在当前shell中运行。这样做的好处是可以避免以后cd回到原始目录。

答案 1 :(得分:0)

为什么不使用两个命令?

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

还有一些适用于Linux的同步实用程序,即使是出于备份目的,例如: rsync,rdiff-backup,synkron ......更不用说本地VCS的优点......你不应该重新发明轮子。

答案 2 :(得分:0)

我喜欢使用“rsync”。

rsync -av MyFolder / .MyFolder.bck /

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