rsync 同步后仅从源中删除一些文件扩展名

rsync 同步后仅从源中删除一些文件扩展名

在我的本地计算机上,我有一些目录(带有子目录),其中包含许多文件(jpegnef),例如:

1.jpg
1.nef
2.jpg
2.nef
....

我想要做的是在高清上同步所有文件(和jpegnef,但同步后,仅在本地计算机上删除nef文件并保留jpg.

有没有办法将其与 结合起来--remove-source-files

答案1

为了安全起见,我会在使用传输两种类型的文件.nef后在单独的步骤中删除文件。rsync例如,像这样:

rsync --verbose --archive --prune-empty-dirs \
    --include='*.nef' \
    --include='*.jpg' \
    --include='*/' \
    --exclude='*' \
    "$source/" "$target"

find "$source" -type f -name '*.nef' -delete

这里的命令rsync只会复制.nef.jpg文件(它会跳过任何其他文件,并且不会$target因为而创建空目录--prune-empty-dirs),然后该find命令将删除所有.nef文件。

我倾向于从不使用--remove-source-fileswith rsync

答案2

我们可能需要同步两次,因为我们没有选项排除源删除。

尝试作为,

rsync -av --remove-source-files --exclude='*.jpg' Source/ Destination ; rsync -av Source/*.jpg Destination 

相关内容