请教各路大侠:
文件夹A 和 B
A:file1 file2 file3 AA/fileb1 file5
B: file1 file2 file3 file4
终极目标:删除A文件夹下的 file5 和 子目录AA
用rsync(不熟悉rsync的话注意备份,免得错删)
rsync -a --delete $TARGET $SOURCE
例:
INSERT$ tree test1 test1 ├── aa │ └── f2 ├── f1 ├── f2 ├── f3 └── f5 1 directory, 5 files
INSERT$ tree test2 test2 ├── f1 ├── f2 └── f3 0 directories, 3 files
执行命令之后:
rsync -a --delete ./test2/ ./test1
两个文件夹就变一样了。
在最低限的环境里(常见与windows……)可以用下面的命令:
dir1="./test2"; dir2="./test1"; for i in `find $dir1 -type f`;do if [ ! -e ${i//$dir1/$dir2} ]; then echo "delete file..$i"; rm $i; fi; done; for i in `find $dir1 -type d`;do if [ ! -e ${i//$dir1/$dir2} ]; then echo delete dir..$i; rmdir $i; fi; done;
谢谢关注
只是我是想在git bash里使用shellscript的方式,没有rsync工具的
@米修君: 已更新,慎用……
@akisann: 多谢,是一个思路