Як отримати розширення файлу від 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