我必须将目录中的文件复制到其备份目录,并保留文件夹结构。例如。 aaa
至MyFolder/Test/aaa
.MyFolder.bck/Test/aaa
我尝试使用
cp --parents MyFolder/Test/aaa .MyFolder.bck;
但结果是.MyFolder.bck/MyFolder/Test/aaa
而不是.MyFolder.bck/Test/aaa
(这是我想要的那个)。
答案 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)。