我在OSX上有以下问题,但我想这同样可以在bash下提交。我有几个加密的便携式驱动器,我用它来同步异地数据存储或作为移动数据存储等。我使用rsync更新了这些更新,包括--del和一个包含文件。 目前这是非常静态地完成的,即
rsync <options> --include-file=... /Volumes /Volumes/PortableData
其中包含文件的内容类似于
+ /Abc/
+ /Def/
...
- *
我想做以下事情:
要实现1,我打算将驱动器的uuid存储在我的配置文件中的变量中,以便我可以搜索它们并找到相关的挂载点。 .bashrc中的bash函数,它接受一个uuid并返回一个挂载点。我已经看到了一些用于实现此目的的Web条目。
2我有点坚持。检索包含文件中同时包含+和顶级文件夹名称的条目然后迭代检查它们是否已装入和可读的最佳方法是什么?再一次,我正在考虑尝试将这些逻辑放在函数中以便重用。
有没有更好的方法来实现这一目标?我已经想到了CCC,但是喜欢在bash中编写脚本并使用rsync的想法,因为它是了解命令行的好方法。
答案 0 :(得分:1)
rsync可以调用作为排除列表的文件。 我会编写一个脚本,将目录转储到非文本文件,包含文件中的顶级文件夹名称
您希望排除看起来像这样:(如果有帮助,您可以使用通配符)
dirtoexlude1
dirtoexlude2
dirtoexlude
然后只需将rsync指向该排除文件即可。 您的Rsync命令将是这样的:
rsync -aP --exclude-from=rsyncexclusion.txt
a主要用于递归(用手挥动)而P用于详细。
祝你好运。