場所が間違ったファイル拡張子を変更する

場所が間違ったファイル拡張子を変更する

誤って拡張子が.mp4。幸い、元の拡張子はファイル名に保存されました(例simon.says.nfo.mp4:)。

今このファイルからmp4部分を削除するにはどうすればよいですか?

私が持っている命名システムのために見つけることはできず、*.*.mp4検索/置換の組み合わせを使用する方が簡単です。

ベストアンサー1

.mp4現在のディレクトリにある対応する拡張子を持つすべてのファイルから拡張子を削除します。.nfo.mp4

for fname in ./*.nfo.mp4; do
  newfname="$( basename "$fname" .mp4 )"
  mv -i "$fname" "$newfname"
done

このbasenameユーティリティはパスを削除し(ファイル名のみを残す)、サフィックスを一度に削除します。現在のディレクトリにのみ興味があるので、再度追加せずにここからパスを削除できます。パラメータ拡張を使用してnewfname="${fname%.mp4}"同じ効果を得ることができます。サフィックスは削除されますが、.mp4初期パスは削除されませんが、$fnameここでは問題ではありません。

私はこれを使って既存のファイルを上書きする操作をmv -i手動で確認できます。mv

テストの目的で、次は何が起こるかを印刷します。

for fname in ./*.nfo.mp4; do
  newfname="$( basename "$fname" .mp4 )"
  printf 'Want to rename "%s" into "%s"\n' "$fname" "$newfname"
  ## mv -i "$fname" "$newfname"
done

おすすめ記事