30

ローカル (Mac OS X) マシン用の単純な bash スクリプトを作成して、マシンのディレクトリからリモート マシンにファイルを移動しようとしています。この行は失敗しています:

rsync --verbose  --progress --stats --compress --rsh=ssh \
      --recursive --times --perms --links --delete \
      --exclude "*bak" --exclude "*~" \
      /repository/* $DEV_SERVER:$REMOTE_DIR

$DEV_SERVER$REMOTE_DIRは以前に定義されており、正確であることを確認するためにそれらをエコーし​​ます。

私が得ているエラーは次のとおりです。

rsync: link_stat /Users/myusername/mycurrentdirectory failed: No such file or directory (2)

ここで注意すべきことは、定義済みのディレクトリ (/repositoryマシンのルートにある ) を使用するのではなく、私の作業ディレクトリを使用することです。これは何が原因ですか?

4

4 に答える 4

49

\行末の文字の後に空白がないことを確認してください。これにより、BASH が行の折り返しを正しく解釈できなくなり、上記の rsync エラーが発生します。

于 2013-08-06T08:57:03.353 に答える
-1

これ:

rsync --verbose  --progress --stats --compress --rsh=ssh \
  --recursive --times --perms --links --delete \
  --exclude "*bak" --exclude "*~" \
  /repository/* $DEV_SERVER:$REMOTE_DIR

これである必要があります:

rsync --verbose  --progress --stats --compress --rsh=ssh --recursive --times --perms --links --delete --exclude "*bak" --exclude "*~" /repository/* $DEV_SERVER:$REMOTE_DIR

\Bashは、コマンド ラインとは異なる方法で文字を解釈するか、暗黙の非空白文字がその後にある可能性があります。

于 2012-05-23T19:51:08.797 に答える