於 Linux 要(遠端)複製檔案過來,通常都使用 scp,但是要複製的目錄裡面,有某些層級的資料夾不想要複製過來,scp 找不到適合的參數,於是找到 rsync 來完成。
使用 rsync 排除(不要)某些檔案、目錄的複製
測試環境
- mkdir source
- cd source
- mkdir -p {01..05}/aa
- mkdir -p {01..05}/bb
- mkdir -p {01..05}/cc
使用 scp 複製 source 資料夾所有,排除 bb
- scp -r example.com:source/ /tmp/dist
- cd /tmp/dist
- find ./ -name bb -delete # 刪掉 bb
- 註:此方法是全複製過來,再來砍掉,但是檔案內容太大或太多,就不太適合
使用 rsync 複製 source 資料夾所有,排除 bb
- rsync -av --exclude=bb example.com:source/ /tmp/dist # 此行即完成
- rsync -av --exclude=bb --exclude=cc example.com:source/ /tmp/dist # 想把 bb, cc 都排除掉