現在、サーバー用の自動バックアップスクリプトを作成しています。スクリプトでUNIX tarコマンドを使用して、コードリポジトリをアーカイブしています。
私のPerlスクリプトでは、次のようにtarコマンドを使用しています。
system("tar -jcpf $destPath/$string.tar.bz2 -X $exclusionFile $targetPath");
tarアーカイブを抽出するときにファイルの所有権を保持したいのですが。でtarアーカイブの内容を一覧表示しようとしました
tar -jtvf
リストには各ファイルの正しいファイル所有権が含まれていますが、アーカイブを抽出すると、ファイル所有権は現在のユーザーに変更されます。
tarアーカイブを抽出し、各ファイルの元のファイルの所有権を維持する方法はありますか?
オプション--same-owner
to tar while extracting。
tar --help
は言う:
--same-owner
create extracted files with the same ownership
tar -x
スイッチで-p
を実行している間、ファイル属性を「保持」したいとします。望ましい結果を得るためには、これをrootにする必要があるのは明らかです。
-p, --insecure, --preserve-permissions
(x mode only) Preserve file permissions. Attempt to restore the
full permissions, including owner, file modes, file flags and
ACLs, if available,
多くのPOSIXシステムはpax
の代替として機能するcpio
、tar
も出荷しています。