в сценарии оболочки, как получить имя файла после удаления файла

#shell

#оболочка

Вопрос:

у меня есть tar-файл «test.tar.gz ‘. теперь я хочу получить имя «test» после удаления «test.tar.gz ‘. В сценарии оболочки, как получить это.

Ответ №1:

Чтобы удалить расширение из имени файла, используйте basename :

 basename test.tar.gz .tar.gz
  

С принтами test

Но это всего лишь базовое имя архива. Это не всегда имя любого файла или каталога, который tar создается. Архив tar может содержать любые имена файлов. Если они вам нужны, используйте tar tf для перечисления содержимого архива.

Ответ №2:

Используйте что-то вроде:

 file="test.tar.gz"
tarfilename=${file%.tar.gz}
  

прочитайте об этом man bash найдите переменное расширение.

Комментарии:

1. должно быть ${file%.tar.gz} с точкой перед «tar»