特定の名前のファイルをコピーして別のフォルダに同じサブフォルダを作成する

特定の名前のファイルをコピーして別のフォルダに同じサブフォルダを作成する

その中に多くのサブフォルダがあるディレクトリがあり、サブフォルダの下に他のサブフォルダがあります。すべてのディレクトリとサブディレクトリを別の場所にコピーし、階層を維持しながら、このディレクトリに特定の名前のファイルのみをコピーしたいと思います。

すべてのディレクトリとサブディレクトリがコピーされたと仮定すると、そのディレクトリに拡張子を持つファイルがある場合、.txtそのファイルもコピーされます。

Unix / Linuxシステムでこれを行う最善の方法は何ですか?

ベストアンサー1

使用rsync:

rsync -a --include='*/' --include='*.txt' --exclude='*' source_dir/ target_dir

source_dirこれにより、コピーされたファイルと名前が一致するファイルをtarget_dir含むディレクトリ階層のコピーが作成されます。*.txt

--includeオプションは、--exclude「wins」という名前に一致する最初のパターンを使用して左から右に処理されます。ここでこれらのオプションを使用すると、すべてのディレクトリに一致する名前が処理されますが、*.txt他のすべては無視されます。

-a()オプションを使用する--archiveと、source_dir階層が再帰的に処理され、できるだけ多くのファイルメタデータがコピーに保存されます(rsync詳細についてはドキュメントを参照)。

おすすめ記事