使用rsync仅删除无关文件

Modified on: Tue, 15 Oct 2019 00:20:02 +0800

在目标位置比较两个目录结构和删除无关文件和目录的最佳方法是什么?

我正在开发一个小型的网络照片库应用程序。用户添加&使用FTP删除图像。我编写的网络库软件动态创建了新的缩略图,但它不处理删除。我想做的是安排一个命令/ bash脚本来按照预定义的时间间隔来处理这个问题。

原始图像存储在/home/gallery/images/中,并使用子目录以相册形式组织。缩略图缓存在/home/gallery/thumbs/中,使用与images目录相同的目录结构和文件名。

我已尝试使用以下功能实现此目的:

rsync  -r --delete --ignore-existing /home/gallery/images /home/gallery/thumbs

如果所有缩略图都已被缓存,它将正常工作,但不能保证会出现这种情况,当发生这种情况时,拇指目录会将原始全尺寸图像复制到其中。

我怎样才能最好地实现我的目标?

作者:Bryan

最佳答案

我认为rsync不是最佳方法。我会像下面这样使用bash one-liner:

$ cd /home/gallery/thumbs && find . -type f | while read file;do if [ ! -f "../images/$file" ];then echo "$file";fi;done

如果这个单行生成正确的文件列表,则可以修改它以运行rm命令而不是echo命令。

作者:,Tom Shaw

相关问答

添加新评论