rsyncがソースのサブフォルダからファイルをコピーしない理由を誰が教えてもらえますか? [コピー]

rsyncがソースのサブフォルダからファイルをコピーしない理由を誰が教えてもらえますか? [コピー]

rsync現在のフォルダ内のすべてのTIF画像ファイルを「Documents」の下の「HR」フォルダにコピーしようとしましたが、これまで成功しませんでした。

rsync -r *.tif /home/myusername/Documents/HR

私が見ることができるように、-rオプションは再帰コピー用ですが、このコマンドは現在のフォルダにあるすべてのTIFファイルのみをコピーします。

誰が私がどこに間違っているのか教えてもらえますか?

現在のフォルダには、数百のTIFファイルを含む多層サブフォルダがたくさんあります。

ベストアンサー1

*シェルによって拡張されたコマンドラインにワイルドカード()があるので、rsync現在のディレクトリにあるTIFFファイルのリストを取得するのがわかります。たとえば、コマンドラインは次のように拡張できます。

rsync -r cry.tif frown.tif smile.tif /home/myusername/Documents/HR

これらのTIFFファイルはディレクトリではないため、rsyncそのファイルに再帰する方法はありません。

一方、これを試すと、rsyncディレクトリを見つけてそのディレクトリに再帰的に入る機会を活用できます。私はこの-aフラグを使用してファイルメタデータ(権限、タイムスタンプ)を保持します。この試みは、で終わるファイルだけでなく、すべてのファイルをコピーしますが、十分であれば.tif理解しやすい解決策は次のとおりです。

rsync -a . /home/myusername/Documents/HR/

これでパズルの最後の部分が近づきます。 (一致する)TIFFファイルのみをコピーするには再帰的ですが、そのファイルのみをコピーする必要があることを知らせる必要があり*.tifます。rsyncこれはコマンドの最も複雑な部分ですが、幸いなことに、rsyncマニュアルページでほとんど排他的に例として引用されています(man rsync「hidden」を参照して検索してください)。

rsync -am --include '*.tif' --filter 'hide,! */' . /home/myusername/Documents/HR/

おすすめ記事