そのため、次のようにホームフォルダを外部ドライブにコピーしてバックアップする予定です。
sudo cp -r /home/my_home /media/backup/my_home
その結果、外付けドライブのすべてのフォルダが所有されます。元の所有権と権限を維持するにはroot:root
どうすればよいですか?cp
答え1
sudo cp -rp /home/my_home /media/backup/my_home
cp マンページから:
-p same as --preserve=mode,ownership,timestamps
--preserve[=ATTR_LIST]
preserve the specified attributes (default: mode,ownership,timestamps),
if possible additional attributes: context, links, xattr, all
答え2
を使用することもできますrsync
。
sudo rsync -a /home/my_home/ /media/backup/my_home/
rsync
マンページから:
-a, --archive
This is equivalent to -rlptgoD. It is a quick way of saying you want
recursion and want to preserve almost everything (with -H being a notable
omission). The only exception to the above equivalence is when
--files-from is specified, in which case -r is not implied.
Note that -a does not preserve hardlinks, because finding multiply-linked
files is expensive. You must separately specify -H.
cp
以下を比較するには、この質問を参照してくださいrsync
。https://stackoverflow.com/q/6339287/406686
次のスラッシュに注意してください(詳細はマンページを参照)。
答え3
cp -a
Where-a
の略語--archive
— デフォルトでは、ディレクトリをそのままコピーします。ファイルはすべての属性を保持し、シンボリックリンクは逆参照されません(-d
)。
からman cp
:
-a, --archive
same as -dR --preserve=all
答え4
次のことができます。
tar cf - my_home | (cd /media/backup; sudo tar xf - )
tar
権限、所有権、およびディレクトリ構造はそのまま維持しますが、すべてをバイトストリームに変換します。ディレクトリを変更し、tar
変換を元に戻す「サブシェル」(括弧内のコマンド)を実行します。バイト文字列は、正しい所有権と権限を持つディレクトリとファイルになります。