Если я вас правильно понял: у вас есть один ZIP-файл, но вы не знаете его имени. Этот ZIP-файл содержит один каталог верхнего уровня, имя которого вы хотите поместить в переменную $filename
.
Попробуйте:
filename=$(unzip -Z -1 *.zip | head -n1 | sed 's/\/$//')
echo $filename
Но если вы уверены, что имя верхнего каталог внутри вашего ZIP-архива совпадает с именем самого архива без суффикса .zip
, который является поведением по умолчанию zip
, вы можете просто попробовать:
filename=$(basename -s .zip *.zip)
echo $filename