習慣了 Windows 的做法,我剛剛發現 OS X 沒有合併功能 - 移動意味著替換資料夾。雖然這確實有道理,但我懷念合併!
我有兩個 WordPress 目錄,1 個包含預設原始程式碼,2 個包含帶有外掛程式自訂主題等的工作版本。
我想看看這兩者之間的區別,所以我把它放在 SVN 上。資料夾 1 已經啟動,現在理論上我應該簡單地將 2 的內容與 1 合併,方法是將所有內容替換為 2 的內容,但保持隱藏的 SVN 檔案不變。
不幸的是,OS X 在移動時會替換該資料夾,因此我的 SVN 用戶端會變得瘋狂並且不再理解資料夾結構。
所以,我相信我的選擇是mv
和ditto
,但是在我的情況下您會使用哪一個以及如何使用?
sudo mv wordpress /Documents/svn/wwwholiday/trunk/wordpress
我想mv
覆蓋它找到的所有內容,但保留資料夾 1 中已存在且資料夾 2 中沒有重複內容的內容。
答案1
以一種方式合併資料夾的最簡單方法,例如
合併資料夾 1 → 資料夾 2 中的所有內容
將是使用rsync
.
rsync -avh folder1/* folder2/
這會:
- 將僅存在於資料夾 1 及其子目錄中的所有檔案移至資料夾 2
- 不是覆蓋資料夾 2 中的所有內容(如果已存在)
- 覆蓋已更改的文件,除非你添加
--ignore-existing
選項 - 不要從資料夾 2 中刪除任何內容,除非你添加
--delete
選項
請隨意根據您的情況進行調整(我猜,其中folder1
和folder2
是相反的)。
您可以嘗試透過呼叫以下命令來查看該命令的作用:
rsync -avh --dry-run folder1/ folder2/
該dry-run
開關向您展示了它的作用。
不要忘記反斜線具有特殊意義,因此folder2/
目的地與 不同folder2
。請參閱 的線上說明頁面rsync
以了解用法和更多選項。
還建議-P
(根據--help
,same as --partial --progress
)添加show progress during transfer
和keep partially transferred files
(這對於失敗時的重試很有用)。
答案2
您可以按照@slhck 所說的那樣執行此操作,也可以只使用cp
.
$sudo cp -R wordpress/ /Documents/svn/wwwholiday/trunk/wordpress