私の親フォルダには、次のような構造があり、特定のループを作成しようとしているフォルダがいくつかあります。
parentfolder/folder01/subfolder/map.png
parentfolder/folder02/subfolder/map.png
parentfolder/folder03/subfolder/map.png
parentfolder/folder04/subfolder/map.png
など...
したがって、各サブフォルダには名前付きファイルが含まれますmap.png
(つまり、すべてのサブフォルダのファイルは同じ名前ですが、ファイルは異なります)。
各ファイルをコピーして親フォルダ全体に入れたいのですが、map.png
同時に「サブフォルダ」の上のフォルダに基づいてコピーの名前を変更したいと思います。
たとえば、名前を変更しながら親フォルダにコピーしたいとします。map.png
その後、ループを使用して他のすべてのフォルダに対して同じことを行います。parentfolder/folder01/subfolder
folder01.png
私は同様のことを試しましたが、明らかに私が望むことをするために苦労しています。
for i in parentfolder/*; do
cd $i
cd subfolder
cp map.png ../../"$i".png
cd -
done
私はまだ初心者であり、これについて非常に新しいものなので、助けてくれてありがとう。とても感謝しています。
ベストアンサー1
以下のようにforループを試してみてください。
for d in parentfolder/* ; do
cp "$d/subfolder/map.png" "$d.png"
done
現在のディレクトリがparentfolder
。