Upvotes
1
Upvotes: 1介紹 rsync 常用指令
下面整理一份 rsync 常用指令(偏 Linux / macOS;你在 WSL 也一樣適用)。
rsync -avh SRC/ DST/
-a:archive(保留權限/時間/符號連結…,等於常用的「完整同步」)-v:顯示過程-h:人類可讀大小SRC/ 末尾的 / 很重要:代表「同步資料夾內容」而不是整個資料夾本體。rsync -avh --progress SRC/ DST/
# 或更簡潔的總覽
rsync -avh --info=progress2 SRC/ DST/
rsync -avh --delete SRC/ DST/
常用在「備份鏡像」,讓 DST 變成跟 SRC 一模一樣。
⚠️ --delete 會刪目標端多出來的檔案,務必確認 SRC/DST 有沒有打反。
rsync -avh --dry-run --delete SRC/ DST/
建議你每次要加 --delete 前都先跑一次。
rsync -avh --exclude '.git/' --exclude 'node_modules/' SRC/ DST/
用檔案列規則(更乾淨):
rsync -avh --exclude-from=.rsyncignore SRC/ DST/
本機 → 遠端:
rsync -avh -e ssh SRC/ user@host:/path/DST/
遠端 → 本機:
rsync -avh -e ssh user@host:/path/SRC/ DST/
指定 SSH 連線參數(例如 Port 2222):
rsync -avh -e "ssh -p 2222" SRC/ user@host:/path/
只覆蓋更新的檔案(依時間戳/大小):
rsync -avh --update SRC/ DST/
用 checksum 判斷(更準但更慢,因為要算 hash):
rsync -avh --checksum SRC/ DST/
例如只同步 .csv:
rsync -avh --include='*/' --include='*.csv' --exclude='*' SRC/ DST/
避免同步 owner/group(一般非 root、跨機器很常用):
rsync -avh --no-owner --no-group SRC/ DST/
只想保留時間戳、不要權限:
rsync -rltvh SRC/ DST/
-r 遞迴-l 符號連結-t 時間戳rsync -avh --partial --inplace SRC/ DST/
--partial 保留未完成的暫存--inplace 直接寫回原檔(某些情境更省空間;但也可能讓中途中斷的檔案暫時處於不完整狀態)更保守常用:
rsync -avh --partial --append-verify SRC/ DST/
列出會變更的檔案:
rsync -avh --itemize-changes SRC/ DST/
把專案備份到另一個資料夾,排除 cache/大型依賴,並保持鏡像一致:
rsync -avh --delete \
--exclude '.git/' \
--exclude 'node_modules/' \
--exclude '__pycache__/' \
--exclude '.venv/' \
/path/project/ /backup/project/
如果你跟我說你的情境是:
Comments
Login to add a comment.
No comments yet.