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フラグは一部のプラットフォームでデフォルトで有効になっていますが、rootAIXについてはわかりません。)

答え2

Tarは非常に一般的ですが、inodeデータに関連する多くの潜在的な問題を理解していません。変形を強くお勧めします。

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

私は数年前にこれを「良いスクリプト」で書いていましたが、ほとんどの場合コマンドラインで上記を使用しています。

素晴らしいスクリプト(2009年から!あや!)を見るには、以下を参照してください。http://www.rootvg.net/content/view/301/309/

関連情報