フォルダ構造を維持しながら、ディレクトリからファイルのサブセットをコピーするにはどうすればよいですか?


回答:


9

rsyncフィルター規則の魔法:

$ rsync -av --filter="+ */" --filter="-! *blah*" /source /dest

rsyncフィルタールールの詳細については、manページを参照してください。ただし、この特定のニーズに対応するための要約版を次に示します。

--filter="+ */" 「ディレクトリであるすべてのものを含める」という意味

--filter="-! *blah* 「ファイル名に何とか含まれていないものをすべて除外する」ことを意味します


3

これらのファイルをコピーする必要がある場合、cpは次のことを行います。

cd dirA
find . -iname "*blah*" | xargs -If cp --parents f dirB

オプション--parentsはサブディレクトリを保持します-宛先の完全なディレクトリパスを作成します。


ここの構文はrsyncよりもはるかに明確です
Mat –jŠmíd

0

これは私のために働きました:

rsync -ave 'ssh -p 22' --filter="+ */" --exclude="*_blah.blah" uid@555.55.555.55:/source/directory/ /destination/directory/

-eスイッチは、定義されrsyncたようにポートに転送プロトコルを-p 22。また、末尾の/スラッシュは、プログラムがディレクトリを扱っていることをプログラムに知らせるために重要です。

勤務時間の延長にご協力いただき、ありがとうございました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.