web-dev-qa-db-ja.com

Bashスクリプトrsync:rsync:link_stat(何とか)が失敗しました:そのようなファイルまたはディレクトリはありません(2)

ローカル(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、これはマシンのルートにあります)、私の作業ディレクトリを使用します。何が原因ですか?

23
Nathaniel Ford

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

40
Martin Smith

ソースの場所から「*」を削除します。最後に「/」を指定すると、rsyncはディレクトリ内を調べることを認識します

そのように:

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