この質問に関連する
問題の簡単な説明:
ソースツリー内にマウントされたポイントがある場合、ターゲットツリーにコピーされたときにそのマウントされたポイント内のファイルのタイムスタンプは、-a
を使用しても保持されません。 オプション
詳細な説明:
これがソースツリーであると仮定します:
/home/ /home/
| |
me/ BACKUP/
| |
+----+----------+ +----+-------+
| | | | | |
data/ foo.txt boo.txt data/ foo.txt boo.txt
| |
a.txt a.txt
ここで、data/
上記は外部USBディスクを搭載しています。すべてがext4
ファイルシステム。ソース内のすべてが私のme
に所有されています 。
BACKUP
たまたまマウントポイント、バックアップUSBディスクでもありました。
このコマンドを発行した後rsync -av --delete /home/me/ /home/BACKUP/
、/home/BACKUP/data/
が見つかりました その下のすべてには、これらのファイルが今作成されたかのように現在のタイムスタンプがあり、/home/me/data/
内のファイルのタイムスタンプではありません。 。 data
外の他のファイルとフォルダ タイムスタンプは問題なく保存されました。
質問は:rsync
の使い方 上記の設定で、マウントされたポイントのファイルとフォルダでも、すべてのファイルとフォルダのタイムスタンプを保持するように指示しますか?
私が使用しているもの:
>uname -a
Linux 3.5.0-17-generic #28-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux
>rsync -v
rsync version 3.0.9 protocol version 30
承認された回答:
man rsync
から :
-t, --times preserve modification times
編集–これがOPに役立たなかった理由はすぐには明らかではないため、この回答を改善するために:
OPは、あるファイルシステムから別のファイルシステムにファイルをコピーしており、c-time
を保持したいと考えています。 。ほとんどの人はc-time
を理解しています これは、ほとんどのUNIX / Linuxシステムでは正しくない「作成時間」を意味します(Windowsファイルシステムは「作成」または「誕生」時間を追跡します)。
ほとんどの場合、UNIXおよびLinuxでは、c-time
最後のiノード「C」を記録するために使用されるタイムスタンプです。 「ハンジ。 iノードは、その属性のいずれかが更新されると変更されます:
- 作成(OPの場合)
- モード(許可)
- 所有者/グループ
- ハードリンク数
- など。 (stat()システム呼び出し)
OPはc-time
を保持できません それらが新しいファイルシステムに持ち込まれたときのファイルの新しいファイルシステムでのこれらのファイルの作成は、上記の条件の1つです(iノード/ファイルの作成)。
/編集