
我想在 Ubuntu 的兩個不同位置擁有相同的資料夾。如果我更新其中一個位置的某些內容,它也應該在其他位置更新。
我怎樣才能實現它?
答案1
正如評論中指出的那樣,但不是正確的答案:
在許多情況下,符號連結是最簡單的解決方案。
您可以在命令列上輕鬆建立它們(使用ln
帶-s
參數的命令)。您也可以使用 GUI 輕鬆建立它們:大多數檔案瀏覽器(nautilus 等)可讓您在按住修飾鍵 (CTRL+SHIFT) 的同時使用拖放操作(例如移動檔案)來建立符號連結。
命令列使用範例:
$ mkdir first_dir
$ ln -s ./first_dir ./second_dir
$ ls
first_dir second_dir
$ touch ./first_dir/test_1
$ touch ./second_dir/test_2
$ ls ./first_dir
test_1 test_2
$ ls ./second_dir
test_1 test_2
答案2
使用綁定安裝。
假設您有一個現有目錄/home/pandey/original
並且想要鏡子這樣/home/pandey/mirror
您在其中一個中所做的所有操作也會在另一個中自動完成。
這不需要在兩個目錄之間進行任何同步或複製。 A綁定掛載只是另一個看法到原始目錄,一個目錄中發生的情況也會發生在另一個目錄中。
建立(作為您的使用者)新目錄
/home/pandey/mirror
:mkdir /home/pandey/mirror
綁定安裝原來的目錄移動到新建立的路徑。這需要 root 存取權限:
sudo mount --bind /home/pandey/original /home/pandey/mirror
享受。
若要撤銷此操作,只需
sudo umount /home/pandey/mirror
rmdir /home/pandey/mirror
另請參閱 stackexchange 上的這個問題及其出色的自我回答關於綁定安裝。
答案3
您可以透過設定 crontab 作業來完成此操作:
- 打開你的終端機並輸入
crontab -e
- 按下
i
以啟動 Vim 編輯器的插入模式。
您可以在那裡輸入您想要執行的命令,這樣您就可以將該資料夾的所有檔案複製到另一個資料夾中。例如,如果您想要將所有文件複製到其中/home/user/folder_name
,/home/user/public
您應該在文件中插入以下命令crontab
:
rsync /home/user/folder_name -r /home/user/public
這將複製所需時間間隔內的所有檔案。如果您想在每天 21:30 複製所有文件,您的編輯應該是:
30 21 * * * rsync /home/user/folder_name -r /home/user/public
欲了解更多信息定時任務看這裡或使用man crontab
.