このコマンドを使用して、リモートとローカルを同期させることがよくあります。rsyncへのエイリアスを作成するには?
rsync -xyz --foo=bar some_files [email protected]:remote_dir
は、だから私はこのように、別名でこれを単純化したい:
up_remote() {
local_files=${@:1:$((${#}-1))} # treat argument[1:last-1] as local files
remote_dir="${@[$#]}" # treat argument[last] as remote_dir
echo $local_files
echo $remote_dir
rsync -xyz --foo=bar "$local_files" [email protected]:"$remote_dir"
}
をしかし、私は三個の以上の引数を渡した場合、それは動作しません。
up_remote local1 local2 remote_dir
I set -x
でこの機能をデバッグする私は関数は、このようなrsync
を生成することを見つける:
お知らせ単一引用符('
)。これらの単一引用符を削除すると、rsync
は正しく動作しますが、これを行う方法はわかりません。
何かアドバイスは大歓迎です。
forループを使用しますか? –
もちろん、それは解決策であり、動作します。 – MoreFreeze