フォルダ内の複数のファイルのファイル名を切り捨てる方法

フォルダ内の複数のファイルのファイル名を切り捨てる方法

複数のpng画像ファイルを含むフォルダがあります。末尾から一部の情報を削除するには、ファイル名を切り捨てる必要があります。

例えば

some file-170227-222746.png
some other file-170228-222742.png
another file-170226-222743.png

.png 拡張子を維持しながら - 以降のすべての項目を削除し、次のように仕上げる必要があります。

some file.png
some other file.png
another file.png

すべてのファイルはpng画像ファイルなので、元のファイルを保存する必要はありません。

私はこれを試してみましたが、うまくいきましたが、.png拡張子を削除して間違ったことをしました。

for file in *.png; do
  mv -- "$file" "$(file%%.png"
done

上記のmvコマンドを変更して必要な操作を実行できますか?別のアプローチを使用する必要がありますか?

ありがとう

ベストアンサー1

あなたのアプローチは正しい方向に進んでおり、いくつかの正確さが必要です。次のことができます。

for file in ./*.png; do  mv  "$file"  "${file%%-*}.png";  done

おすすめ記事