在 Linux 中怎样使用cp命令合并目录树

怎样将两个布局相似的目录树合并成一个新的目录树?为理解该问题让我们思考下面的例子。

在 Linux 中怎样使用cp命令合并目录树

假设 dir1 和 dir2 目录中分别有3个子目录a,b和c.目录布局如下所示:

Layout of input directories

输入目录布局

在目录a,b和c中有一些文件,tree命令的输出将能更好的说明:

Layout of files

文件布局

1. 使用cp命令创建合并:

现在我们将这两个目录合并成一个名为"merged"新的目录中.完成上述操作最简单的方式就是递归复制目录,如下图所示:

Copy directories recursively to create new merge

递归复制完成新的合并

1.1 cp命令和替换带来的问题:

这种方式所带来的问题是该合并目录中所创建的文件为原文件的副本,并非原文件本身.别急, (你可能正在问自己) 如果不是原文件又有什么问题? 要回答你的问题,考虑下你有很多大文件的情况.那种情形下,复制所有的文件可能花费数小时。

现在让我们回到刚那问题上,且尝试使用mv命令而不是cp命令。

Attempt to merge with mv command

企图使用mv命令进行合并操作

这些目录不能被合并.因此我们不能像这样使用mv命令去合并目录. 现在你该怎样将原文件保存到"merged"目录中?

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/17703.html