ローカル(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
、これはマシンのルートにあります)、私の作業ディレクトリを使用します。何が原因ですか?
その後、行の終わりに\文字に空白がないことを確認してください。これにより、BASHが行の折り返しを正しく解釈せず、上記のrsyncエラーが発生します。
ソースの場所から「*」を削除します。最後に「/」を指定すると、rsyncはディレクトリ内を調べることを認識します
そのように:
rsync --verbose --progress --stats --compress --rsh=ssh --recursive --times --perms --links --delete --exclude "*bak" --exclude "*~" /repository/ $DEV_SERVER:$REMOTE_DIR