[Bash] ファイル名から拡張子を取り除く
作成日: 2026年09月24日
Bash でファイル名の末尾の拡張子を取り除くには、パラメータ展開の ${変数%.*} を使用します。
filename="archive.tar.gz"
echo "${filename%.*}"
実行結果は下記のとおりです。
archive.tar
%.* は、変数の末尾から . で始まる最短の文字列を削除します。そのため、archive.tar.gz では最後の .gz だけが削除されます。
拡張子を持たないファイル名では、そのままの値が返ります。
filename="README"
echo "${filename%.*}"
実行結果は下記のとおりです。
README