我有这个bash脚本将我的备份运行到外部硬盘驱动器...只有安装了该驱动器(OS X):
DIR=/Volumes/External;
if [ -e $DIR ];
then rsync -av ~/dir_to_backup $DIR;
else echo "$DIR does not exist";
fi
这有效,但我感觉我误读了rsync手册页。如果顶级目标目录不存在,是否有内置rsync选项来中止运行?如果没有测试/ Volumes / External的存在,如果目录尚未安装,则该目录将被创建。
答案 0 :(得分:3)
这两个标志看起来就像你要找的那样:
--existing, --ignore-non-existing
从手册页:
- 现有的, - 不存在的 - 不存在的 这告诉rsync跳过创建目标上尚不存在的文件(包括目录)。如果将此选项与--ignore-existing选项结合使用,则不会更新任何文件(如果您只想删除无关文件,这将非常有用)。
答案 1 :(得分:3)
AFAIK没有,但您可以使用尾部斜线模拟行为:
rsync -av dir_to_backup /Volumes/External/;
如果目录不存在(可能需要也可能不需要),它将以错误退出。
此外,您始终可以优化if:
test -e $DIR && rsync -av ...
答案 2 :(得分:1)
不,就手册页而言,似乎没有任何此类选项。