AIX 上のファイルを FS から別の FS にコピーするにはどうすればよいでしょうか?

AIX 上のファイルを FS から別の FS にコピーするにはどうすればよいでしょうか?

ファイルシステムを取得しました: /foo

そして、別のファイルシステムができました: /bar

質問:/foo から /bar にすべてのファイルをコピーするにはどうすればよいですか?

圧縮するスペースはなく、コピーするだけです。しかし、ファイルシステムにはシンボリックリンクやハードリンクが存在する可能性があります。そのため、これらと所有者、権限、構造、隠しファイルを保存する必要があります。最善の方法は何でしょうか?

追加: 奇妙な文字を含むファイルやブロック/文字ファイルも

アップデート: これで gzip を使用できますか? ネットワーク経由でコピーする必要がある場合、圧縮は非常に便利です。

答え1

ルイのコメントほぼ十分です。これにより、隠しファイルを含むすべてがコピーされます。

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

( として実行root)。

2 つのプロセス間でコピーされるデータを圧縮する場合は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/

関連情報