題 僅在從ext4同步到NTFS時顯示已更改的文件


我想rsync打印修改和刪除的文件。詳細選項(-v)確實打印已修改的文件,但也打印子目錄列表,可能因為觸摸的目錄被視為已修改。由於我從很多子目錄中同步了很多文件,因此無法看到實際的變化。

那麼,有沒有辦法不使用rsync打印目錄?

我不是在尋找 grep -v "*/$" 答案類型,因為它也會排除新目錄。

我正在使用的命令: rsync -avh --delete /media/data/src /media/data/bkp

每次打印所有目錄的列表:

src/dir1/

src/dir1/sdir1/

src/dir1/sdir2/

src/dir2/

編輯:好的,經過一些密集測試..從ext4分區同步到ext4,從NTFS同步到NTFS時,它不會打印所有目錄。它只在從ext4同步到NTFS時才會這樣做。和選項 -c 要么 --omit-dir-times 不要改變。


9
2017-09-10 14:59


起源




答案:


你可以嘗試使用 --omit-dir-times 切換到忽略目錄時間(看一下rsync手冊頁)。

我個人覺得使用 -c switch是確保僅在輸出中顯示內容已更改的文件的最佳方法。

注意使用 -c 會減慢rsync。


4
2017-09-10 15:32



謝謝回复。我很難相信它不是原生支持的,至少不會失去性能(或選項)。我只需要相信它同步它。 - qox
對不起,我的編輯在您回答後更改了問題。 - qox


您可以告訴rsync在復製到不支持它的文件系統時忽略文件權限,而不是更改安裝類型。以下命令適用於我。

從rsync手冊頁:

總結:要為目標文件(舊的和新的)提供源權限,請使用--perms。要為新文件提供目標默認權限(同時保持現有文件不變),請確保--perms選項已關閉並使用--chmod = ugo = rwX(這可確保啟用所有非屏蔽位)。如果你想讓後一種行為更容易輸入,你可以為它定義一個popt別名,例如將這一行放在〜/ .popt文件中(以下定義-Z選項,並包括--no- g使用目標dir的默認組:

rsync alias -Z --no-p --no-g --chmod=ugo=rwX

1
2018-03-20 17:42





不要使用-a,它包含-p -o -g。


1
2017-10-14 05:39



你仍然可以使用 -a 如果你想,然後添加 --no-o --no-p --no-g 省略所有者,組和權限。 - Ian Dunn


看起來這是一個許可問題。不知道為什麼.. 但我已經為NTFS分區編輯了/ etc / fstab,它現在按預期工作,即沒有打印未修改的目錄。

老fstab條目: ntfs-3g用戶,默認值,exec,uid = 1000 0 0

新的fstab條目: ntfs-3g用戶,默認值,exec,uid = 1000,gid = 1000,dmask = 077,fmask = 137 0 0

我猜(誰知道..)dmask = 077做了訣竅,即'drwx ---'而不是'drwxrwx'。


0
2017-09-27 09:03





我用了:

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

這是一個乾運行(選項 n)。刪除該選項以便擁有 rsync 實際上傳輸文件。


-1
2018-01-19 11:41