私は通常rsync
bashスクリプトを実行してデータを外部ドライブにバックアップします。そのうちの説明は次のとおりです。
#!/usr/bin/env bash
#Backup
#-r : recursive
#--size-only : ignore timestamp, use size
#-t : transfer modif times
#-v : verbose
#--progress : show transfers as they happen
#--delete-before : files to be deleted are done so before transfers
#-u : update; skip newer files on target
#-L : follow symlinks
#
rsync -r --size-only --progress --delete-before -t -v -u -L /home/user/Desktop/backup/ /media/guajardo/BCKPDRV/jomdir/
私のデスクトップディレクトリには、 backup
同期したいすべてのディレクトリへのシンボリックリンクがあります。最近、外部ドライブのすべてのエントリをこのディレクトリに移動しましたjomdir
(すべてドライブのルートにあります)、スクリプトを実行するとエラーが発生します
line 12: /media/user/BCKPDRV/jomdir: Is a directory
。すべてがルートディレクトリにある場合、これは発生しません。運転する。しかし、bashで上記のコマンドを実行し、パスDesktop/...
全体を相対パスなどに置き換えると機能します。スクリプトを修正して~/Desktop/...
などを使用すると、エラーが消えてrsync
機能します。
なぜこれが起こるのかというアイデアはありますか?してください:rsync
この種の仕事のために定期的に使用する他のいくつかのスクリプトがあるので、このスクリプトを使い続けたいと思います。
ありがとうございます!
編集:前述のように、スクリプトの残りの部分は単なるコメントであるため、各オプションの機能を忘れずにここにあります。
答え1
公開したエラーは、line 12: /media/user/BCKPDRV/jomdir: Is a directory
rsyncエラーではなくシェルエラーです。シェルは行12で上記のパスが実行されると思いますが、エラーはその操作を実行できないことを示します。rsync
予想どおり議論として機能しません。
より多くの助けを得るには、関連していると思われる部分だけでなく、実際のbashスクリプトを質問に切り取り、貼り付けることもできます。