
我想保持兩個目錄“同步”,以便本地版本可能只包含子集的遠端版本。因此,同步它們應該會導致對本機子集的任何變更被推送到遠端目錄,並且對遠端目錄的任何變更(對相關子集所做的變更)會被拉入本機目錄。但是,我不希望在沒有明確複製的情況下從遠端目錄中提取任何新檔案或目錄。
(我想這樣做的原因是因為我在遠端伺服器上有一個非常大的音樂收藏,但由於磁碟空間不足,我無法一次將整個收藏放入我的筆記型電腦上。但是,我想保留任何內容集合的一部分,我在本地有,與伺服器上的相關部分同步,特別是在我更新了ID3 標籤、Vorbis 註釋等的情況下)
從手冊頁中的文件來看, rsync 的--ignore-non-existing
標誌似乎是執行此操作的合理方法,但它沒有產生預期的結果。即使兩個根目錄包含相同的子目錄,它也會跳過第一層子目錄。
例如,如果遠端目錄example.org:/path/to/it/
包含dir1
和dir2
,並且本地目錄/other/dir/
包含dir1
和dir2
,我得到以下結果...
$ rsync --dry-run --ignore-non-existing example.org:/path/to/it/ /other/dir/
skipping directory .
或嘗試使用通配符...
$ rsync --dry-run --ignore-non-existing example.org:/path/to/it/* /other/dir/
skipping directory dir1
skipping directory dir2
有誰知道如何正確使用這個標誌?還是我誤解了它的目的?或者,如果您對保持目錄子集同步有任何其他建議,請告訴我。
謝謝。 :)
答案1
嘗試遞歸地執行:
rsync --recursive --dry-run --ignore-non-existing example.org:/path/to/it/ /other/dir/