ディレクトリ内のすべての画像ファイルの名前を変更し、それらが保存されているフォルダと同じ名前を付ける必要があります

ディレクトリ内のすべての画像ファイルの名前を変更し、それらが保存されているフォルダと同じ名前を付ける必要があります

ディレクトリ内のすべての画像ファイルの名前を変更し、それらのファイルが入っているフォルダと同じ名前を付ける必要があります... Bash スクリプトを使用してこれは可能ですか?

また、連続した番号を付ける必要もあります (0001.jpg、0002.jpg、0003.jpg など)。 問題は、番号の間にジャンプがあることです (0018.jpg、0019.jpg、0025.jpg、0026.jpg など)。 0025.jpg を 0020.jpg に、0026.jpg を 0021.jpg などに変更したいです。

答え1

はい、可能です。すべてのディレクトリを検索し、-exec オプションを使用して、ディレクトリ パスをパラメーターとしていくつかのアクションを実行できます。また、次のようなfind /search/path -type dbash スクリプトを実行することもできます。NUM=0; for file in /path/to/folder/*.jpg; do mv file NUM.jpg; let "NUM=NUM+1"; done;

答え2

このコマンドを使用するには、.jpg ファイルがあるディレクトリにいるか、コマンドを少しカスタマイズする必要があります。

 let a=0; for i in *.jpg; do let a=a+1; b=`basename $PWD`; c=`printf %04d$b.jpg $a`; mv $i $c; done

出力は次のようになります。

0001<dirname>.jpg

関連情報