Bash script: удалить расширение из имени файла

У меня есть следующий bash script:

tar -zxvf $1
cd $1

Он должен извлечь файл архива и ввести созданный каталог. Как правило, файл архива пакетов создает каталог с тем же именем, что и файл, без расширения, например, mpc-1.0.1.tar.gz создает каталог mpc-1.0.1. Как изменить строку cd $1, чтобы получить имя каталога? Архивные файлы имеют несколько расширений: tar.gz, tat.xz, tar.bz2.