AIX 上如何将文件从一个 FS 复制到另一个 FS?

AIX 上如何将文件从一个 FS 复制到另一个 FS?

我们有一个文件系统:/foo

我们得到了另一个文件系统:/bar

问:如何将 /foo 中的所有文件复制到 /bar ?

我们没有空间来压缩它们,只能复制它们。但文件系统中可能存在符号链接、硬链接。所以需要保存这些以及所有者、权限、结构、隐藏文件!什么是最好的方法?

额外:带有奇怪字符的文件或块/字符文件

更新:我们可以使用 gzip 吗?如果需要通过网络复制,压缩将非常有用。

答案1

锐的评论差不多就够了;这应该复制所有内容,包括隐藏文件:

cd /foo; tar cpf - . | (cd /bar; tar xpvf -)

(运行为root)。

如果要压缩两个tar进程之间复制的数据,可以在管道中添加压缩器和解压缩器:

cd /foo; tar cpf - . | gzip -9 | (cd /bar; gunzip | tar xpvf -)

如果您的版本tar支持它,您可以使用该z标志:

cd /foo; tar cpzf - . | (cd /bar; tar xpzvf -)

(该-p标志在某些平台上默认启用root,我不确定 AIX 是否如此。)

答案2

Tar - 虽然非常通用 - 并不了解与 inode 数据相关的许多潜在问题。我强烈推荐一个变体

cd $src; find . | backup -if - | (cd $target; restore -xqf -)

几年前,我将其编写成一个“漂亮的脚本” - 但主要是我只是在命令行上使用上面的内容。

对于漂亮的脚本(从 2009 年开始!哎呀!)请参阅:http://www.rootvg.net/content/view/301/309/

相关内容