Rsync
rsync 排除 AppData 但包含 Firefox 書籤?
我想使用 cygwin 和 rsync 備份我的 Windows 主目錄:
rsync.exe -vrt --delete --exclude=AppData "/cygdrive/C/Users/user1/" "/cygdrive/D/backup/"
如您所見,我排除了AppData目錄。
是否可以在以下路徑中包含我的 Firefox 書籤?
AppData/Roaming/Mozilla/Firefox/Profiles/*/places.sqlite
星號代表配置文件名稱。不知道是因為 Firefox 在那裡生成隨機名稱。
也許可以使用帶有–exclude-from 的排除腳本?
我知道可以使用 power shell 將places.sqlite複製到另一個文件夾,然備份份這個文件夾。
但也許直接使用 rsync 是可能的。
這幾乎是rsync 的副本:使用過濾器排除頂級目錄但包括其一些子目錄。
您需要包含
AppData
用於搜尋的文件夾樹,您可以找到places.sqlite
,但排除除該文件之外的所有內容。rsync --dry-run -av --prune-empty-dirs \ --include '/AppData/Roaming/Mozilla/Firefox/Profiles/*/places.sqlite' \ --include '*/' \ --exclude '/AppData/***' \ '/cygdrive/C/Users/user1/' '/cygdrive/D/backup/'
--prune-empty-dirs
停止目標被填充的目錄,否則這些目錄將保持為空,因此只rsync
創建它需要保存它正在複製的文件的目錄。(有點奇怪,這不是預設操作,但事實並非如此。)在我的系統上,
places.sqlite
是在Profiles/*
而不是Profile/*
所以我相應地調整了我建議的命令。如您所料,--dry-run
當您對結果滿意時刪除。
這是創建符號連結的另一個決定:將 places.sqlite 移動到 rsync 包含範圍中的某個位置,例如 c:\places*\places.sqlite
mklink c:\places\*\places.sqlite AppData\Roaming\Mozilla\Firefox\Profile\*\places.sqlite
甚至對於目錄,語法:
mklink /d <Link> <Target>
結果,rsync 將複製所有需要的數據,並跳過其他數據。