rsync 删除更新的时间

rsync 删除更新的时间

我一直在使用 rsync 将我的音乐库(由 banshee 管理)推送到我用于手机的 sdcard。

这帮助我解决了没有好的 GUI 程序来同步手机音乐的问题。虽然我一直讨厌 iTunes,但我承认,它在管理外部设备和 PC 之间存储在程序中的音乐和其他文件方面非常出色。我并不是说 rsync 不是一个很棒的实用程序,我知道它很棒,只是我没有像我希望的那样熟练使用它。

浏览过几次手册页后,我找到了以下两个脚本:

syncToSdCard.sh:

#!/bin/bash
exec >  >(tee ~/rsync.out);
exec 2> >(tee ~/rsync.err);

rsync -v -r --delete-delay /home/user/Music/ /media/user/0741-C987/Music/;

更新SdCardOnly

#!/bin/bash
exec >  >(tee ~/rsync.out);
exec 2> >(tee ~/rsync.err);

rsync -v -r -u --inplace -m --prune-empty-dirs -e --delete /home/user/Music/ /media/user/0741-C987/Music/;

我的目标是用我机器上的目录内容更新 SD 卡上的目录,并清除从源目录中移动或删除的所有内容。

第一个 rsync 脚本(syncToSdCard.sh)执行此操作;但是,它需要很长时间才能运行。

第二个 rsync 脚本,虽然包含删除选项,但仅将更改从我的本地机器(新文件和更新的文件)推送到 sdcard;但这个脚本非常快。

我正在寻找能够帮助我将两者合并在一起的人,以便快速更新并删除源(pc)上不再存在的文件,而目标(sdcard)上则不再存在这些文件。

有人能帮我吗?如果可能的话,我也愿意用其他方式来实现同样的目标;我能想到的用于这种操作的最佳工具就是 rsync。

谢谢。

答案1

我想我找到了问题的答案。我或多或少地尝试了更多参数,试图将这两个脚本结合起来,并得出了以下结论:

#!/bin/bash
exec >  >(tee ~/rsync.out);
exec 2> >(tee ~/rsync.err);

rsync -v -r -u --inplace -m --prune-empty-dirs --delete-delay /home/user/Music/ /media/user/0741-C987/Music/;

到目前为止,它已经成功完成了我一直在寻找的工作,它建立了需要推送到设备的具体更改列表,并且无需对每个文件进行缓慢的比较,然后快速删除。

我不会将其标记为完成,直到我再测试几次以验证它正是我想要的。

如果其他人确实知道比我在这里想到的更好的方法来实现这个结果,请告诉我!

谢谢。

相关内容