GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Mengenalinya Rsync Untuk Mempertahankan Cap Waktu Pada File Ketika Pohon Sumber Memiliki Titik Terpasang?

Terkait dengan pertanyaan ini

Deskripsi singkat masalah:

Ketika pohon sumber memiliki titik mount di dalamnya, maka stempel waktu pada file di dalam titik mount tersebut saat disalin ke pohon target tidak dipertahankan bahkan saat menggunakan -a pilihan

Deskripsi detail:

Asumsikan ini adalah pohon sumber:

                       /home/                           /home/
                         |                                |
                        me/                             BACKUP/
                         |                                |
                    +----+----------+                +----+-------+
                    |    |          |                |    |       |
                 data/  foo.txt    boo.txt         data/ foo.txt boo.txt
                    |                                |
                   a.txt                           a.txt

dimana data/ di atas sudah terpasang disk USB eksternal. Semuanya ext4 berkas sistem. Semua yang ada di sumber adalah milik me my saya .

BACKUP kebetulan juga merupakan titik pemasangan, disk USB cadangan.

Setelah mengeluarkan perintah ini rsync -av --delete /home/me/ /home/BACKUP/ , saya menemukan bahwa /home/BACKUP/data/ dan semua yang ada di bawahnya memiliki stempel waktu saat ini, seolah-olah file ini dibuat sekarang, dan bukan stempel waktu pada file di /home/me/data/ . File dan folder lain di luar data memang memiliki cap waktu yang diawetkan OK.

Pertanyaannya adalah:Bagaimana cara menggunakan rsync dalam pengaturan di atas untuk memberitahunya untuk mempertahankan cap waktu pada semua file dan folder bahkan pada file dan folder pada titik yang dipasang?

Saya menggunakan:

>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

Jawaban yang Diterima:

dari man rsync :

   -t, --times                 preserve modification times

EDIT - untuk meningkatkan jawaban ini karena tidak segera jelas mengapa ini tidak membantu OP:

OP menyalin file dari satu sistem file ke sistem file lainnya dan ingin mempertahankan c-time . Kebanyakan orang mengerti c-time berarti "waktu pembuatan" yang salah pada sebagian besar sistem UNIX/Linux (sistem file Windows melacak waktu "pembuatan" atau "kelahiran").

Untuk sebagian besar, di UNIX dan Linux, c-time adalah stempel waktu yang digunakan untuk merekam inode terakhir ‘C 'gantung. Sebuah inode berubah jika salah satu atributnya diperbarui:

  • kreasi (kasus OP)
  • mode (izin)
  • pemilik/grup
  • jumlah tautan keras
  • dll. (stat() panggilan sistem)

OP tidak dapat mempertahankan c-time dari file mereka ketika mereka dibawa ke sistem file baru. Pembuatan file-file ini di sistem file baru adalah salah satu syarat yang tercantum di atas (pembuatan inode/file).

/EDIT


Linux
  1. Bagaimana membedakan biner dari file teks di linux

  2. Bagaimana cara RSYNC satu file?

  3. Bagaimana cara memberi tahu Dolphin file mana yang disembunyikan?

  1. Bagaimana saya bisa mengecualikan file secara default dengan rsync?

  2. Bagaimana cara menambahkan ke grup ketika nama memiliki spasi?

  3. Bagaimana saya bisa mengetahui file apa yang telah dibuka oleh suatu proses?

  1. Bagaimana Mengenalinya Jika Sebuah File Sedang Diunduh Oleh Wget?

  2. Bagaimana Cara Selektif Membungkam Rsync?

  3. Bagaimana cara menghapus file .fuse_hidden*?