將每日備份目錄(由 rsync 建立)移至同一分割區中的另一個目錄

將每日備份目錄(由 rsync 建立)移至同一分割區中的另一個目錄

/mnt/X我有一個每日 rsync 腳本,將我的資料備份到外部硬碟(硬碟的根目錄)上。我習慣--link-dest使用硬連結並避免重複數據。我需要在不丟失硬連結的情況下/mnt/X將所有日常備份移至 。/mnt/X/backups稍後我需要更改腳本以在新的目標目錄中進行備份,/mnt/X/backups並在同一目錄中找到前一天的備份。

您建議我如何進行搬家?

答案1

你不必做任何特別的事情。簡單地,

mv /mnt/X/* to /mnt/X/backups/

(您將收到有關無法移動backups到自身的錯誤)。

硬連結基本上是一個索引節點號。硬連結的檔案具有相同的索引節點號。無論您在同一檔案系統中移動它們,inode 號碼都不會改變。因此不需要採取特殊措施。

首先使用一些簡單的文件親自嘗試/tmp

/tmp $ mkdir aa
/tmp $ touch aa/f
/tmp $ ln aa/f aa/g
/tmp $ mkdir aa/new
/tmp $ mv aa/* aa/new
mv: cannot move 'aa/new' to a subdirectory of itself, 'aa/new/new'
/tmp $ ls -il aa/new/
13185910 -rw-r--r-- 2  0 Apr 11 13:32 f
13185910 -rw-r--r-- 2  0 Apr 11 13:32 g

相關內容