29

特定の拡張子 (*.sh) のファイルを rsync しようとしていますが、以下の bash スクリプトはまだすべてのファイルを転送しています。なぜですか?

from=/ホーム/xxx
rsync -zvr --include="*.sh" $from/* root@$host:/home/tmp/
4

4 に答える 4

26

--exclude all を追加する必要があり、 --include の後に追加する必要があります

rsync -zvr --include="*.sh" --exclude="*" $from/*  root@$host:/home/tmp/
于 2013-02-01T22:20:52.743 に答える
22

--includeしたくないファイルです--exclude。今後の引数を除外していないため、影響はありません。できるよ:

from=/home/xxx
rsync -zvr --include="*.sh" --include="*/" --exclude="*" "$from" root@$host:/home/tmp/

すべての .sh ファイルを再帰的にコピーするには ( --include.sh ファイルを含む可能性のあるディレクトリをスキップしないための追加機能)

于 2013-02-01T22:23:03.983 に答える
6

追加すべきこととして、少なくとも私のマシン (FreeBSD と OS X) では、これは機能しません:

rsync -aP --include=*/ --include=*.txt --exclude=* * /path/to/dest

しかし、これは:

rsync -aP --include=*/ --include=*.txt --exclude=* . /path/to/dest

はい、現在のディレクトリをワイルドカード化すると、除外が上書きされるようです。

于 2014-04-28T13:42:11.533 に答える
5

--exclude=*--exclude=*.*に変更する問題を修正しました。 *インクルード ファイルがあるフォルダーを除外することがわかりました。

于 2015-03-23T10:27:18.510 に答える