#bash #zip
#bash #zip
Вопрос:
Если я запущу…
$ myTest="bar"
$ zip -r foo-${myTest} path/*
…затем я получаю zip-файл с именем foo-bar.zip
. (обратите внимание на .zip
расширение!) Однако, если я запущу…
$ myTest="1.0.1"
$ zip -r foo-${myTest} path/*
…затем я получаю zip-файл с именем foo-1.0.1
. (без .zip
расширения!)
Я, очевидно, могу добавить .zip
в свой скрипт, но я хотел бы понять, что здесь происходит. Почему не zip
добавляется расширение, когда имя файла создается из переменной с числами в нем?
Ответ №1:
Когда я писал этот последний вопрос, меня осенило, что речь идет не о числах. Цитирование из man zip
:
Если имя zip-архива не содержит расширения, добавляется расширение .zip . Если имя уже содержит расширение, отличное от .zip, существующее расширение сохраняется без изменений. Однако для разделения архивов (архивов, разделенных на несколько файлов) требуется расширение .zip при последнем разделении.
Проблема в том, что у меня есть .
‘s в переменной, которая zip
интерпретируется как расширения имени файла. К счастью, мой скрипт создает переменную с .
помощью ‘s, поэтому я могу уверенно добавлять .zip
до конца. В противном случае мне нужно было бы проверить, чтобы .
‘s правильно назвал файл.