Linux下覆蓋目錄的方法

2021-10-17 03:59:46 字數 675 閱讀 6109

需求:

用乙個目錄覆蓋另乙個目錄

參見:

嘗試0:

直接cp -rf

cp -rf dir1 dir2

失敗。會將dir1 複製到dir2下。

原因參見info coreutils 2.8 target directory

嘗試1:

使用 mv -t dir1 dir2

當目錄都為空時,可以覆蓋。

目錄非空時,則不可覆蓋。

解決方案0:

cp -r -t dir1 dir2 

會把dir1中的內容複製到dir2中。

但是dir2中原有而dir1中沒有的檔案不受影響,不會被刪除。

相當於合併。

解決方案1:

rsync -r --delete dir1 dir2

用dir1中的內容覆蓋dir2中的內容。

dir2中原有而dir1中沒有的檔案會被刪除掉。

效果上是dir1覆蓋了dir2。

一些理解和疑問:

rsync 本身設計用來同步檔案,做這件事還是很合適的。

rsync 的--delete 引數可以用來快速刪除檔案,達到覆蓋效果。

但是也要小心使用。以免誤刪。

cp/mv 的 -t 引數是將目的目錄當作普通檔案。

為什麼會有合併資料夾的效果?

Linux下長目錄改短目錄方法

修改 home bashrc檔案中的ps1變數即可。在相應的位置新增 sp1 u h w 修改後效果 ps1 提示符的設定變數。提示符的含義如下 主要資訊 u 當前登入使用者名稱 h 當前計算機名 主機名 譬如ubuntu h 當前計算機的網域名稱全程,譬如 ubuntu.ubuntu.com w ...

Linux下目錄的合併以及檔案的覆蓋

有兩個目錄test和new,test目錄下有目錄和檔案,new目錄下有更改過的一些test下的目錄和檔案,以及一些新增的檔案,現在對兩個目錄進行合併以及覆蓋test下的舊檔案linux下目錄的合併以及檔案的覆蓋案例 cp frap new test 命令其實非常簡單,解釋下 f 強制覆蓋,不詢問ye...

Linux下高效切換目錄的方法

linux 下對於目錄的切換,大家肯定會想到乙個命令 cd 命令。這個是 linux 下再基本不過的命令,如果這個命令都不知道的話,趕緊剖腹自盡去吧。cd 命令確實很方便,但如果需要頻繁在下面的目錄切換,你可能要懷疑人生了 home alvin projects blogdemos linux sy...