我無法找到任何可靠的文件同步程序爲我的Mac,所以我一直在兩個文件夾之間使用命令行Rsync。有關使用Rsync的幾個問題?
我一直在使用「rsync -r源目標」。
- 此同步文件是雙向還是同步文件,還是隻同步到目的地? - 如果文件之前在兩個文件夾之間同步,但由於不再需要而被刪除,它會在源和目標上被刪除,還是隻會被複制到缺少的文件?
我無法找到任何可靠的文件同步程序爲我的Mac,所以我一直在兩個文件夾之間使用命令行Rsync。有關使用Rsync的幾個問題?
我一直在使用「rsync -r源目標」。
- 此同步文件是雙向還是同步文件,還是隻同步到目的地? - 如果文件之前在兩個文件夾之間同步,但由於不再需要而被刪除,它會在源和目標上被刪除,還是隻會被複制到缺少的文件?
否,rsync
會將遠程目錄的內容同步到本地目錄。在這方面它是單向的。或者,您可以強制它刪除遠程文件夾中不存在的本地文件。
如果要保留兩臺機器上的最新更改,則必須提供更復雜的rsync咒語,並將兩臺機器都設置爲rsync服務器。我想這樣做最終會讓你陷入麻煩,特別是如果你想成爲專制而不是刪除。
在任何情況下,您都可以使用-u
(或--update
)選項,該選項將跳過目標端更新的任何文件。您不必擔心時間戳,這不會處理任何衝突或合併。仍然...它可能如此簡單:
rsync -u -r target1 target2
rsync -u -r target2 target1
這將不會做任何刪除操作。您無法知道一個目標上的丟失文件被刪除,而不是另一個目標上創建的新文件。
這就是版本控制被髮明的原因......對於害怕版本控制的人來說,存在像DropBox這樣的服務。
回答原來的問題:
1)只在一個方向由上拉或推送機制同步文件。 推拉機制,請參閱「」man rsync「」的手冊頁。
因此,對於您的問題的其餘部分,請不要假設它在兩種方式下都可以使用 。
2)該文件只在目標目錄上被刪除。 在rsync --help
命令中獲得更多詳細信息,請參閱選項 - 刪除目標目錄 和其他刪除選項中的無關文件。
3)丟失的文件將被複制只是,如果你是推遠程機器/目錄/文件
推送機制樣品例如目標目錄: -
rsync -avz /home/local_dir/abc.txt [email protected]:/home/remoteuser/
如果名爲abc.txt的文件已存在於目標目錄中,然後根據它是本地端舊版本的abc.txt進行更新。 如果abc.txt在遠程目錄中不存在,則會使用本地版本的abc的內容創建一個名爲abc.txt的全新文件。TXT
的拉機制樣品例如: -
rsync -avz [email protected]:/home/remoteuser/abc.txt /home/local_dir/
如果一個文件的abc.txt命名已經存在於本地目錄,然後它會根據其更新爲舊版本的abc.txt的遠程或不是。 如果本地目錄中不存在abc.txt,則會創建一個名爲abc.txt的新文件,其中包含本地版本abc.txt的內容