すべてのディレクトリで特定のファイルの名前を繰り返し変更しようとしています。サブディレクトリのパターンに従って名前を変更してコピーを作成するbashスクリプト
homefolder/folder1/ouput/XXXXX_ab.png
homefolder/folder1/ouput/XXXXX_abcdefg.png
homefolder/folder2/ouput/XXXXX_ab.png
homefolder/folder2/ouput/XXXXX_abcdefg.png
homefolder/folder3/ouput/XXXXX_ab.png
homefolder/folder3/ouput/XXXXX_abcdefg.png
...
homefolder/folder500/ouput/XXXXX_ab.png
homefolder/folder500/ouput/XXXXX_abcdefg.png
私はフォルダ名(例:のfolder1、フォルダ2、... folder500)を取得し、接頭辞として2つのPNGファイルにそれを渡し、Xこれら5 を削除したいです各ファイルの先頭に。 これらのpngファイルのパターンは以下のとおりです。
XXXXX_ab.png
XXXXX_abcdrfg.png
はこれだけで最初の5つの文字は、これらのフォルダ名、親ディレクトリの名前に置き換えられます各サブディレクトリ、で異なっています。
結果は次のようになります。名前変更の終わり
homefolder/folder1/ouput/folder1_ab.png
homefolder/folder1/ouput/folder1_abcdefg.png
homefolder/folder2/ouput/folder2_ab.png
homefolder/folder2/ouput/folder2_abcdefg.png
homefolder/folder3/ouput/folder3_ab.png
homefolder/folder3/ouput/folder3_abcdefg.png
...
homefolder/folder500/ouput/folder500_ab.png
homefolder/folder500/ouput/folder500_abcdefg.png
は、 all_png_folderたとえばため、homefolderで別のフォルダ内にこれらの二つの新たな名前が変更されたファイルのコピーを作成します。
find . -iname "*_ab.png" -exec rename _ab.png folder1_ab.png '{}' \;
find . -name "*_ab.png" -exec cp {} ./all_png_folder \;
動作しませんか? – Cyrus