複数のフォルダ内の複数のファイルを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