Rsync
rsync 具有模式匹配的特定子目錄
我正在嘗試使用 rsync 複製一組特定的子目錄來備份它們。我的目錄結構如下所示:
/path/to/data/foo1 /path/to/data/foo2 /path/to/data/bar1 /path/to/data/bar2
我只想複製“foo”文件夾,忽略“bar”文件夾。
我還想忽略這些文件夾中的任何 .zip 文件。
我在 rsync 中嘗試了許多參數組合,但無法讓它完全按照我的意願進行。
我可以使用兩個命令進行傳輸:
rsync --dry-run -a --human-readable --stats --progress --exclude"*.zip" "/path/to/data/foo1" "/mnt/backup/drive/" rsync --dry-run -a --human-readable --stats --progress --exclude"*.zip" "/path/to/data/foo2" "/mnt/backup/drive"
在別處閱讀表格,我希望這樣的事情能奏效
rsync --dry-run -a --human-readable --stats --progress --include="data/foo*" --exclude="*.zip" --exclude="*" "/path/to/data" "/mnt/backup/drive"
但這似乎也擷取了“欄”文件夾。
–include 和 –exclude 參數的順序讓我感到困惑。因為需要在 –include 參數中指定“數據”文件夾不是我所期望的功能。
我缺少的明顯標誌是什麼!
感謝您的輸入。
本
以這種方式執行 rsync 對您有用:
rsync --dry-run -av --human-readable --stats --progress --exclude="*.zip" /path/to/data/foo* /path/to/copy/to/
也許您想以這種方式縮短命令:
rsync -avhn --stats --progress --exclude="*.zip" /path/to/data/foo* /path/to/copy/to/
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X) -v, --verbose increase verbosity -h, --human-readable output numbers in a human-readable format -n, --dry-run perform a trial run with no changes made
當你準備好執行命令時
-n
也可以使用此參數保存日誌文件:
--log-file=
所以上面的 rsync 命令會變成:
rsync -avhn --stats --progress --exclude="*.zip" --log-file=logfile.log /path/to/data/foo* /path/to/copy/to/
日誌文件將寫入執行命令的同一目錄中,如果需要將其保存在其他位置,則必須使用絕對路徑。例如:
--log-file=/path/to/logfile