1つのコマンドで2つのファイルタイプを同期しますか?


13

同じパスを繰り返すことなく、それらを1行に書き込む方法は?

rsync -a root@somewhere:/folder/remote/*.txt .
rsync -a root@somewhere:/folder/remote/*.jpg .

回答:


18

次のように書きます。

rsync -a root@somewhere:/folder/remote/*.{txt,jpg} .

7
これは、任意のコマンドで使用できる一般的な手法です。シェルは引数を繰り返し、ブレース式をリスト内の各アイテムに置き換えます。それはブレース拡張
ショーンJ.ゴフ

11
rsync -a --include='*.txt' --include='*.jpg' --exclude='*' root@somewhere:/folder/remote/ .

(の最後//folder/remote/--exclude='*'インクルードルールの後の配置が重要であることに注意してください。)ブレースの展開をサポートするシェル(bash、ksh、zshなど)の場合:

rsync -a --include='*.'{txt,jpg} --exclude='*' root@somewhere:/folder/remote/ .

--include='*/' --prune-empty-dirsサブディレクトリ内のファイルもコピーする場合は追加します。


rsync 3 *は*ワイルドカードでは失敗するようですが、include | excludeはうまく機能します。
ブライアンキップ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.