rsync删除目标机器中非空文件夹

rsync

命令说明:

--exclude:上传/删除失效

上传时:不上传指定文件/目录

删除时:不删除指定文件/目录

--delete:删除所有上传目录不存在的文件/目录,但是,不删除任何目标文件在exclude中的文件/目录

--delete-exclude:将--exclude功能设置为针对上传,删除时失效。即删除目标路径中所有上传目录不存在的文件/目录,但是所有exclude中的内容都生效,特别危险。建议使用修饰符-s方式。

-n选项:预先检查本次删除操作涉及到的文件

--include/exclude中修饰符

 -s:设置exclude中的排除只针对上传,删除失效

实验:

src:上传机器

desc:目标机器

exclude:上传和删除都排除某个pattern(*.sh)

-n选项:预先检查本次删除操作涉及到的文件

 

需求:

a、上传时,src机器不上传*.sh和*.txt文件,使用exclude实现

b、只删除desc中src不存在的*.sh文件并清除相关目录,即*.txt文件不受影响。

 

 

如下图所示,我想删除desc机器中conkg/tsh/test.sh同时删除conkg/tsh文件夹:

 

注意:实验时,默认加上-n选项,只查看不删除。

1、使用--delete命令时,发现并不会能够删除conkg/tmp文件夹和test.sh文件:

rsync -rvz --exclude-from del.txt -n --delete conkg [email protected]:/home/kg/tmp

 

2、使用--delete-excluded,发现desc中所有src中不存在的*.sh和*.txt文件都被删除了

rsync -rvz --exclude-from del.txt -n --delete-excluded conkg [email protected]:/home/kg/tmp

 

3、使用-s修饰符效果:看到只会删除tsh文件夹和test.sh文件

 

可以看到desc机器中tsh文件夹和test.sh文件都被删除了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章