シェルでファイル名を先頭に追加する

シェルでファイル名を先頭に追加する

フォルダー内に test.png、example.png などの .png ファイルが 100 個あります。

などNew_と名前が変更されるように、New_test.pngを先頭に付加したいと思います。New_example.png

シェルでどうすれば実行できますか。

答え1

オペレーティング システムが指定されていません。この回答では Windows を想定しています。

私が最初に考えたのは、次のような簡単なコマンドでした。

for %f in (*.png) do rename "%f" "New_%f"

しかし、という名前のファイルはa.png最初に名前が変更されNew_a.png、アルファベット順で下に移動されました:-(ループはこのファイルの名前を変更しました2番New_New_a.png までの時間。

したがって、これは次の 2 つの手順で実行する必要があります。

dir /b *.png > png.txt
for /F %l in (png.txt) do rename "%l" "New_%l"
del png.txt

最初の行は、現在のディレクトリ内のすべての png ファイルの名前を含むテキスト ファイルを作成します。2 行目は、ファイルの各行を解析し、png の名前を変更します。

関連情報