ファイルプロパティと親ディレクトリを維持しながら、/etc/binをフォルダにコピーしたいとします。 [ターゲットフォルダには、binフォルダだけでなく/ etc / binも含める必要があります。 ]
これは可能ですか? tarを使って圧縮して解凍するのは効率的ですか?
答え1
mkdir target/etc
cp -Rp /etc/bin target/etc/
または(GNUのみ)
mkdir target/etc
cp -a /etc/bin target/etc/
または
mkdir target/etc
rsync -aAX /etc/bin target/etc/
または(クラシックUNIX)
find /etc/bin | cpio -pm target
または(クラシックUnix、その他)
( cd / && tar -tf - etc/bin ) | (cd target && tar -xf - )
または(少数の人が聞いたようなPOSIXの代替)
mkdir target/etc
pax -rw -pe etc/bin target/etc/
これはすべて既存のUnixメタデータ(権限、タイムスタンプ1、所有権(rootとして実行する場合)2)を保存します。システムによっては、ACLや拡張属性などの追加のメタデータを保存することも、保存しない場合もあります(一部は--acls --xattrs
GNU tarの使用などの追加オプションが必要な場合があります)。
1コピーできないctimeと一部のディレクトリatimeは除外されます。 ²ルートのみの所有権を保持できます。
答え2
人間タール:
-P, --absolute-names Don't strip leading slashes from file names when creating ar‐ chives. -p, --preserve-permissions, --same-permissions extract information about file permissions (default for supe‐ ruser) --xattrs Enable extended attributes support.