rsync 添加额外的目录到命令

rsync 添加额外的目录到命令

我正在编写 rsync 命令脚本,目前我正在尝试做类似的事情......

rsync -av -e ssh $DATASTORE/usr/local/somepath $DESTDIR/usr/local/someotherpath/

如果我回显 $DATASTORE 它显示

echo $DATASTORE
[email protected]

如果我运行命令我得到

/vagrant/[email protected]/usr/local/somepath no suck file or diectory

我不太明白,为什么要在其中添加 /vagrant (/vagrant 是我所在的当前目录),以及它来自哪里?我想我不能完全这样做,但我想了解它在做什么以及如何绕过它(如果安全的话)?

答案1

正如其他人指出的那样,您需要使用冒号 ( :) 将主机规范与路径规范分开 -

rsync -av -e ssh "$DATASTORE":/usr/local/somepath "$DESTDIR"/usr/local/someotherpath/

我还将指出,这将放入somepath您的目标目录中"$DESTDIR"/usr/local/someotherpath,以便您最终得到"$DESTDIR"/usr/local/someotherpath/somepath.如果这不是所需的行为,但您想要内容somepath目标someotherpath目录中,在源路径后面附加一个斜杠:

rsync -av -e ssh "$DATASTORE":/usr/local/somepath/ "$DESTDIR"/usr/local/someotherpath/

答案2

尝试更换

$DATASTORE

经过

${DATASTORE}:

答案3

你做的一切都很好。这里只是缺少一个冒号。尝试这个:

rsync -av -e ssh $DATASTORE:/usr/local/somepath $DESTDIR/usr/local/someotherpath/

相关内容