Hanya tampilkan file yang diubah saat menyinkronkan dari ext4 ke NTFS

9

Saya ingin rsync untuk mencetak file yang dimodifikasi dan dihapus. Opsi verbose (-v) tidak mencetak file yang dimodifikasi tetapi juga daftar subdirektori, mungkin karena direktori yang disentuh dianggap dimodifikasi. Karena saya menyinkronkan banyak file dari banyak subdirektori, tidak mungkin untuk melihat perubahan yang sebenarnya.

Jadi, adakah cara untuk tidak mencetak direktori menggunakan rsync?

Saya tidak mencari grep -v "*/$"jawaban karena akan mengecualikan direktori baru.

Perintah yang saya gunakan: rsync -avh --delete /media/data/src /media/data/bkp

Dan setiap kali ia mencetak daftar semua direktori:

src/dir1/

src/dir1/sdir1/

src/dir1/sdir2/

src/dir2/

EDIT: Ok, setelah beberapa tes intensif .. Itu tidak mencetak semua direktori ketika menyinkronkan dari partisi ext4 ke ext4 dan dari NTFS ke NTFS. Itu hanya dilakukan saat sinkronisasi dari ext4 ke NTFS .. Dan opsi -catau --omit-dir-timestidak mengubahnya.

qox
sumber

Jawaban:

4

Anda dapat mencoba menggunakan --omit-dir-timessakelar untuk mengabaikan waktu direktori (lihat halaman manual rsync).

Saya pribadi menemukan bahwa menggunakan -csakelar adalah cara terbaik untuk memastikan bahwa hanya file yang isinya telah diubah yang muncul di output.

Perhatikan bahwa menggunakan -crsync akan memperlambat.

Marko Kudjerski
sumber
Terima kasih balasannya. Saya merasa sulit untuk percaya itu tidak didukung secara asli, setidaknya tanpa kehilangan kinerja (atau opsi) .. Saya hanya harus percaya itu menyinkronkan itu semua.
qox
Maaf, hasil edit saya mengubah pertanyaan setelah jawaban Anda.
qox
1

Alih-alih mengubah tipe mount, Anda juga dapat memberitahu rsync untuk mengabaikan izin file saat menyalin ke sistem file yang tidak mendukungnya. Perintah berikut ini berfungsi untuk saya.

Dari halaman manual rsync:

Singkatnya: untuk memberikan file tujuan (lama dan baru) izin sumber, gunakan --perms. Untuk memberikan file baru izin tujuan-default (sambil membiarkan file yang sudah ada tidak berubah), pastikan bahwa opsi --perma tidak aktif dan gunakan --chmod = ugo = rwX (yang memastikan bahwa semua bit yang tidak bertopeng diaktifkan). Jika Anda ingin membuat perilaku yang terakhir ini lebih mudah diketik, Anda dapat mendefinisikan alias popt untuknya, seperti meletakkan baris ini di file ~ / .popt (berikut ini mendefinisikan opsi -Z, dan termasuk --no- g untuk menggunakan grup default dari dir tujuan):

rsync alias -Z --no-p --no-g --chmod=ugo=rwX
flo
sumber
1

jangan gunakan -a, mengandung -p -o -g.

netawater
sumber
Anda masih dapat menggunakan -ajika Anda mau, dan kemudian menambahkan --no-o --no-p --no-guntuk menghilangkan pemilik, grup, dan izin.
Ian Dunn
0

Sepertinya itu masalah izin. Tidak yakin mengapa .. Tapi saya sudah mengedit / etc / fstab untuk partisi NTFS dan sekarang berfungsi seperti yang diharapkan, yaitu tidak ada pencetakan direktori yang belum dimodifikasi.

Entri fstab lama: pengguna ntfs-3g, default, exec, uid = 1000 0 0

Entri fstab baru: pengguna ntfs-3g, default, exec, uid = 1000, gid = 1000, dmask = 077, fmask = 137 0 0

Saya menebak (siapa tahu ..) dmask = 077 melakukan trik yaitu 'drwx ---' bukannya 'drwxrwx'.

qox
sumber
-1

Saya menggunakan:

sudo rsync -auzhni --progress --omit-dir-times --no-o  src_dir/ dst_dir 

Ini adalah lari kering (opsi n). Hapus opsi itu untuk rsyncbenar - benar mentransfer file.

pengguna291372
sumber