我正在尝试编写rsync脚本以快速复制OSx上一个目录中的文件。我遇到了包含和排除选项的问题。例如,我想要复制的目录是:
$HOME/Library/Dir1/RandomDir/cache/
我最初使用rsync来同步缓存目录,但是OSx没有在源路径中使用通配符。我正在使用的命令是:
rsync -avP "$HOME/Library/Dir1/*/cache/" Dest/Dir
当我运行此命令时,OSx无法找到该目录,因为它正在查找Dir1 / * /的字面互穿,并且*未被视为通配符。
接下来我尝试实现--include和--exclude选项,但是我无法让它工作。
我正在使用
rsync -avP --include="*/" --include="cache/" --exclude"*" $HOME/Library/Dir1/ Dest/Dir/
当我运行此命令时,它不会仅复制缓存目录。我的理解是rsync按照输入的顺序实现包含和排除,所以我的逻辑是rsync将包含Dir1目录下的所有内容(处理通配符问题),然后只包含缓存目录,然后它会排除其他一切。我想使用rsync来保存整个副本中的文件属性和时间戳的归档功能。
谁能告诉我这里哪里出错了?我已尝试过该命令的几种变体,例如--include =" / cache"和--exclude =" / *",但显然到目前为止还没有工作。任何帮助都非常感谢。谢谢。
答案 0 :(得分:0)
我终于找到了我的问题所在。我有双引号的源目录,因此将*解释为文字...无论如何,谢谢。