複数のフォルダの複数のファイルを1つのフォルダにコピー

複数のフォルダの複数のファイルを1つのフォルダにコピー

複数のフォルダ内の複数のファイルを1つのフォルダにコピーし、コピーされたディレクトリに基づいて名前を変更する方法は?

初期ディレクトリ階層:

folder1/
    file1.gz
    filexyz.gz

folder2/
    file1.gz
    filexyz.gz

folder3/
    file1.gz
    filexyz.gz

結果:

folder1_file1.gz
folder2_file1.gz
folder3_file1.gz
folder1_filexyz.gz
folder2_filexyz.gz
folder3_filexyz.gz

ベストアンサー1

単純なシェルループを使用して、ファイルを値で指定されたディレクトリにコピーする必要があるとします$destdir

for pathname in */*.gz; do
    cp -i -- "$pathname" "$destdir/$( dirname -- "$pathname" )_$( basename -- "$pathname" )"
done

おすすめ記事