いくつかの特定のファイルを除いて、フォルダを別の場所にコピーしたいと思います。
これは私の現在のスクリプトです。
#!/bin/bash
if [ -n "$2" ]
then
source=$(readlink -f $1)
destination=$(readlink -f $2)
else
printf "\nProper syntax: my_copy source_folder destination_folder\n"
exit
fi
params=(
--exclude='.git'
--exclude='deploy'
--exclude='app/config/database.php'
--exclude='app/config/config.php'
)
cd $source
rsync " -a ${params[@]} $source/* $destination"
スクリプトを実行すると、次のエラーが発生します。
rsync: link_stat "-a --exclude=.git" failed: No such file or directory (2)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1070) [sender=3.0.9]
私は何が間違っていましたか?
ベストアンサー1
何が起こっているかを確認するには、まずrsync
コマンドをコマンドに変更しますecho
。
$ echo "rsync \" -a ${params[@]} $source/* $destination\""
潜在的な修正
この行を次のように変更します。
$ rsync -a "${params[@]}" "$source/"* "$destination"