ファイルシステムがあります:/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についてはわかりません。)