同じディレクトリ構造間で同じ拡張子を持つすべてのファイルをコピーする方法は?

同じディレクトリ構造間で同じ拡張子を持つすべてのファイルをコピーする方法は?

A、Bフォルダが2つあります。 Bには多くの拡張子があります.build。 A には、B のサブディレクトリと同じ構造を持つ fe サブディレクトリがあります。

たとえば、Aにはあり、some_path/Tools/Camera/Bにはがありますdifferent_path/Tools/Camera。同じ構造を持つ2つのサブディレクトリ(1つはAに、もう1つはBにあります)を手動で識別し、BのサブディレクトリからAのサブディレクトリにすべての.buildファイルをコピーする必要があるとします。

どうすればいいですか?

ベストアンサー1

globstarBashシェルオプションを有効にします。shopt -s globstar

次に、ディレクトリをBに変更し、次を実行します。

for path in **/; do
    [ -d "<A-dir>/$path" ] && cp -n "$path/"*.build "<A-dir>/$path"
done

次に、Bの各サブディレクトリを再帰的にチェックし、Aに同等のサブディレクトリがあることを確認します。存在する場合、.buildBサブディレクトリ内のすべてのファイルがAにコピーされます。

おすすめ記事