[檔案] 文件管理強迫症福音
如果你有將所有文件和目錄結構在你的個人設備之間(特指Windows個人電腦和Android手機與平板)保持相同和同步的習慣,這篇筆記就是為你準備的。本文是我的個人筆記,如果你決定嘗試實踐此方法,本人不對由此可能造成的任何潛在的數據損失負責。
備份原則:最佳實踐
你的數據和文檔是無價的。在此領域最著名的準則便是“3-2-1原則”
- 3:三個備份.
- 2:兩種不同介質。機械硬盤(HDD)對於冷數據有更長的存儲壽命,但讀寫速度相對較慢。這類介質對沖擊敏感(跌落和振動),容易損壞。固態硬盤(SSD)快速而輕便,比機械硬盤更加堅固,然而長久不連接電腦進行刷新的話,數據很容易損壞,一旦損壞很難恢復(對比機械硬盤)。因此它們不適合存儲冷數據和歸檔。傳統的U盤閃存只適合小尺寸文件和數據的交換,並不適合用於長期存儲數據,因為它們普遍壽命偏短,容易損壞。一種便攜的日常數據備份存儲介質是被稱為固態U盤(USSD,U盤大小的固態硬盤)的東西,但是也需要經常向兩種不同介質(即固態硬盤和機械硬盤)備份。
- 1:至少有一份異地備份。本地備份容易在遭受盜竊、遺失和自然災害後丟失。異地備份可以是存在於其它地方或者存在雲端。但永遠要記住,除了個人NAS(私有云網絡存儲)之外,你的數據並不真正掌握在你手中。
文件同步
計算機到計算機 (Windows/Linux/macOS):FreeFileSync是一種免費、高質量的開源軟件。一個技巧是將FFS配置文件(*.ffs_gui)保存到OneDrive上,這樣你所有的計算機都能同步訪問同一份配置文件。這樣你也能使用此配置保持所有電腦的文件和目錄結構相同。
計算機到Android手機/平板:FolderSync是一款免費/付費Android應用程序,能夠使你在手機平板上同步並本地訪問你的文件(例如用於同步你已經發表的文章、待閱讀的文獻和自己的簡歷)。技巧是在OneDrive上設立移動設備專用的同步文件夾,然後在應用上創建同步文件夾對,連接到此OneDrive文件夾。配置時,根據需要勾選”允許刪除“選項。
我的某些電腦只有一塊物理磁盤一個存儲分區(C:\),而另一些卻有多快硬盤多個資料分區(C:\, D:\, …),我如何保持文件路徑一致性?
微軟 Windows操作系統中,在有額外盤符(例如D:\)時,很多人習慣於將操作系統(C:\)和資料、數據、文檔(D:\, E:\)用不同盤符分開。
如果你的計算機中擁有多於一塊的物理硬盤,那麼有額外盤符是很自然的一件事情。然而,對於只有一塊物理硬盤的電腦,文件統一管理可能會遇到麻煩(例如文件路徑一致性、需要保存和同步維護多個不同文件同步配置文件、文件路徑過長打不開文件或者難找等)。
注意:在接下來教程中的文件名和路徑都可以根據實際情況調整,是任意的。
解決方案1:將僅有的硬盤進行分區操作(不推薦)
進入磁盤管理,將你僅有的硬盤分成兩個不同盤符的分區,一個是你的操作系統,另一個用於你的文件。這樣你就可以用同一個同步配置文件管理你所有的電腦。
然而此方法有一個顯著問題:你不能預見你需要向C:\和D:\分區分配多少磁盤空間。如果你後續安裝了過多的軟件, C:\盤空間就會吃緊;如果你的後續文件資料過多,D:\盤就會不夠用。當這些情況發生時,重新分配磁盤空間往往比較麻煩,因為需要額外的一塊硬盤來騰資料(分區剩餘空間不能支持直接的資料轉移)。
解決方案2:維持單個分區(推薦)
這種解決方案非常靈活。此時你不應當再執著於將操作系統和資料分開,而是著眼於建立一塊虛擬的D:\盤來快速訪問你的文件,而不需要在多個目錄層級間翻動。這種方法也可以使你只用一種文件同步配置文件來管理你的文件,就像在多硬盤計算機上一樣。
2.1 使用開機執行的subst命令(不推薦)
-
在
C:\盤根目錄建立一個新的命令行腳本,例如MountDisk.bat,在其中輸入命令(路徑儘量不要有中文):subst D: "C:\Users\你的用戶名\Documents\你的工作目錄" - 按組合鍵
ctrl+R然後輸入taskschd.msc。 - 創建一個計劃任務,設置在用戶登錄時執行。
- 設置觸發器為系統啟動和用戶登錄時執行。
- 執行的操作為運行程序。程序指向剛剛的
MountDisk.bat腳本。 - 重啟電腦,你應該能看到新的磁盤被創建了。如果出問題,請回到第4步嘗試其他觸發條件。
- [可選]成功後可以將計劃任務導出為
.xml文件以便在其他類似的電腦上設置。
這種方法的問題在於,subst命令不支持回收站以及在新路徑上運行程序(*.exe)。由於缺乏回收站功能,在新路徑上進行文件同步非常危險(誤刪文件後無法恢復)。
2.2 在自動掛載的.vhdx虛擬磁盤裡使用目錄連接mklink /j(推薦)
- 進入磁盤管理,創建一個虛擬磁盤文件,例如
D-VDisk.vhdx。創建大小可以很小,例如100 MB或1 GB。文件實際佔用的空間只和被放入其中的文件大小有關,與創建時填寫的大小無關(不會超出此大小)。 - 初始化虛擬磁盤,格式化到
NTFS,掛載並分配盤符D。 -
打開命令行窗口(PowerShell或CMD)然後輸入命令(路徑儘量不要有中文):
mklink /J "D:\sub-folder" "C:\Users\你的用戶名\Documents\你的工作目錄\子目錄"你可以複製這個命令應用於工作目錄的所有子目錄上,然後保存為一個
.cmd文件以便在其他計算機上配置時使用。命令執行完後,你的目錄連接就已經被保存在.vhdx虛擬磁盤裡了。理論上,只要你的工作目錄的路徑在其他電腦上是一樣的,你只需要複製粘貼.vhdx文件即可。 -
在方便合適的地方創建
MountDDisk.bat並輸入以下命令(路徑儘量不要有中文):diskpart /s "C:\Users\你的用戶名\Documents\DiskpartCMD.txt" - 在第四步中命令裡提到的路徑下(此處即是
C:\Users\你的用戶名\Documents\)創建一個DiskpartCMD.txt文件,在裡面寫入(路徑儘量不要有中文):
select vdisk file="C:\你的虛擬磁盤文件路徑\D-VDisk.vhdx"
attach vdisk
assign letter=D
- 使用組合鍵
ctrl+R然後輸入taskschd.msc。 - 創建計劃任務,設置其無論用戶是否登錄都要執行。選擇以管理員權限運行,兼容性選擇Windows 10。
- 設置觸發器為系統啟動和用戶登錄時執行。
- 執行的操作為運行程序。程序指向剛剛第4步的
MountDDisk.bat腳本。 - 確認應用更改,然後輸入用戶登錄密碼。
- 重啟電腦,你應該能看到新的磁盤被創建了。如果出問題,請回到第8步嘗試其他觸發條件。
- [可選]成功後可以將計劃任務導出為
.xml文件以便在其他類似的電腦上設置。
此方法是半永久的,而且支持包含回收站在內的所有NTFS文件系統功能。
提示:如果你的 .vhdx虛擬磁盤文件在同步文件的路徑上,請在同步規則裡將它排除,因為每臺電腦的的此文件都獨立發生更改。
2.3 將所有工作文件放入.vhdx虛擬磁盤並掛載(不推薦)
其實,你可以拋棄mklink指令然後將你的所有工作文件資料放入一個足夠大的.vhdx虛擬磁盤裡(在2.2的第1步裡創建足夠大的虛擬磁盤,並忽略第3步),然後使用上面的方法開機掛載此磁盤。
這種方法對於分區空間調整也很靈活,而且你也能夠享受回收站和運行.exe程序的功能。然而如果所有文件都包裝在一個巨大的單體文件裡,只要此文件有一丁點損壞,都會導致虛擬磁盤不可讀,從而丟失數據。而且同步和移動這麼大的一個文件既困難又不安全。
2.4 方法對比
| 功能需求 | 磁盤分區 | 使用subst命令 | 小尺寸.vhdx + mklink /j | 所有文件放在大.vhdx裡 |
|---|---|---|---|---|
| 需要維護不同版本的同步配置文件 | 否 | 是 | 否 | 否 |
| 支持回收站功能 | 是 | 否 | 是 | 是 |
支持運行.exe | 是 | 否 | 是 | 是 |
| 所需磁盤空間 | 需要提前規劃 | 可忽略 | 100 MB – 1 GB | 大於你所有數據的大小總和 |
| 調整磁盤空間的靈活性 | 非常低 | 高(無需) | 高(幾乎無需) | 低 |
| 初次設置的難度 | 中等 | 容易 | 容易到中等 | 容易到中等 |
| 重啟後能維持狀態 | 是 | 使用計劃任務和腳本重新掛載 | 使用計劃任務和腳本重新掛載 | 使用計劃任務和腳本重新掛載 |
| 遷移到其他設備難度 | 難 | 容易,重做所有步驟 | 複製粘貼即可 | 文件太大時很難移動 |
| 丟失數據的風險 | 分區有風險! | 幾乎無風險 | 幾乎無風險 | .vhdx文件一但損壞=丟失所有數據 |
本篇文章的閱讀體驗如何?
更多文章的閱讀推薦