私はスクリプトと次のコードを持っています -
cat file_list.txt | while read line
do
rsync --dry-run -avzPs '$line' '123.456.122.111:$line'
done
file_list.txtは次のようになります -
/some/random/directory/file_name.txt
/some/other/directory/a file name.html
.....
$line
私が経験している問題は、動作方法のためにrsyncコマンドがパラメータで機能しないことです--protect-args
。一部のファイル名にスペースがあるため、コマンドにこのオプションを含める必要があります。
ただし、テキスト文書に渡すすべてのパスと特定のファイルが含まれているため、ワイルドカードを使用してすべてを渡すことはできません。この問題をどのように解決できますか?
答え1
--files-from=
ファイルを指定するために使用しないのはなぜですか?
rsync -avzP --files-from=file_list.txt 123.456.122.111:
--no-relative
フルパスを必要とせずにすべてのファイルを同じディレクトリに配置したい場合でも、それを追加できます。
答え2
変数名の周りに一重引用符を使用することはできません。一重引用符で囲まれた文字列は評価されません。
スクリプトは次のようにする必要があります。
cat file_list.txt | while read line
do
rsync --dry-run -avzPs "$line" "123.456.122.111:$line"
done