同様のサブフォルダ構造を持つ多くのディレクトリがあります。各ディレクトリにはサブディレクトリ「s」があります。一部のディレクトリには名前に "_tmp"プレフィックスがあります。
私が望むのは、すべてのホームディレクトリを新しいサーバーにコピーしますが、s-subdirsと_tmp -dirstは転送しないことです。
OSX(rsync v.2.6.9)では、このコマンドは正しく機能します。
rsync -avz --exclude */s/* --exclude *_tmp SOURCE/ DEST/
ただし、Ubuntu(rsync v. 3.0.7)では同じコマンドが失敗し、_tmpsは終了しますが、sフォルダはそのまま残ります。回避策がありますか?
答え1
私はあなたが実行しているものを見るためにコマンドを前に追加するようにしたいと思いますecho
。
echo rsync -avz --exclude */s/* --exclude *_tmp SOURCE/ DEST/
シェル、シェル設定、および現在のディレクトリの内容によっては、引用符のない内容が*_tmp
特定のファイルに展開されることがあります(除外したいほとんどのファイルと一致しない場合があります)。echo
実際に何が起こったのかを示さなければなりません。
シェルの拡張を防ぐには、アスタリスクを引用符で囲む必要があります。
rsync -avz --exclude '*/s/*' --exclude '*_tmp' SOURCE/ DEST/