Как мне получить расширение файла от bash? Вот что я попробовал:
filename=`basename $filepath`
fileext=${filename##*.}
Делая это, я могу получить расширение bz2
от пути /dir/subdir/file.bz2
, но у меня есть проблема с путем /dir/subdir/file-1.0.tar.bz2
.
Я бы предпочел решение, использующее только bash без внешних программ, если это возможно.
Чтобы прояснить мой вопрос, я создавал bash-скрипт для извлечения любого данного архива только одной командой extract path_to_file
. Как извлечь файл, определяется сценарием, видя его тип сжатия или архивирования, который может быть .tar.gz, .gz, .bz2 и т. Д. Я думаю, что это должно включать в себя манипуляции со строками, например, если я получаю расширение, .gz
то я должен проверить, есть ли у него строка .tar
раньше .gz
- если это так, расширение должно быть .tar.gz
.
.tar.bz2