Ubuntu
如何複製合併兩個目錄?
我在 Linux 中有兩個具有這種結構的目錄 images 和 images2:
/images/ad /images/fe /images/foo
…和其他 4000 個文件夾
另一個是:
/images2/ad /images2/fe /images2/foo
…和其他 4000 個文件夾
這些文件夾中的每一個都包含圖像,並且 images 和 images2 下的目錄名稱完全相同,但它們的內容不同。然後我想知道如何將 /images2/ad 的圖像複製合併到 images/ad 中,將 /images2/foo 的圖像複製合併到 images/foo 等所有 4000 個文件夾中。
這是rsync的工作。除非您想移動文件而不是複制它們,否則使用 shell 循環手動執行此操作沒有任何好處。
rsync -a /path/to/source/ /path/to/destination
在你的情況下:
rsync -a /images2/ /images/
(注意尾部斜線
images2
,否則它會復製到/images/images2
。)如果兩個目錄中都存在同名的圖片,上面的命令會
/images/SOMEPATH/SOMEFILE
用/images2/SOMEPATH/SOMEFILE
. 如果您只想替換舊文件,請添加選項-u
. 如果您想始終保留該版本/images
,請添加該選項--ignore-existing
。如果你想從
/images2
rsync 移動文件,你可以通過選項--remove-source-files
. 然後 rsync 依次複製所有文件,並在完成後刪除每個文件。如果源目錄和目標目錄在同一個文件系統上,這比移動要慢得多。