Я пытаюсь сжать каталог в
/home/cyrus/sql
И я хотел изменить рабочий каталог при архивировании папки:
/ $ zip -b /home/cyrus sql.zip /home/cyrus/sql
Но когда я проверяю zip-файл:
/ $ unzip -l sql.zip
Archive: sql.zip
Length Date Time Name
--------- ---------- ----- ----
0 2013-05-30 10:59 home/cyrus/sql/
1776642 2013-05-23 10:22 home/cyrus/sql/wordpress.sql
--------- -------
1776642 2 files
Корневая папка должна была быть sql
. Что я сделал не так?
cd /home/cyrus && zip /sql.zip sql
если вы хотите, чтобы почтовый файл был создан в корне.не уверен, правильно ли я понимаю, но -b не изменит корневую папку. Он поместит временный zip-архив в каталог / home / cryus, после чего скопирует файл sql.zip в текущий каталог. Этот параметр полезен только при обновлении существующего архива, а в файловой системе, содержащей этот старый архив, недостаточно места для одновременного хранения как старых, так и новых архивов.
попробуй использовать:
-j Хранить только имя сохраненного файла (мусорный путь) и не хранить имена каталогов. По умолчанию zip будет хранить полный путь (относительно текущего пути).
источник
-j
может быть не прав; Я бы предположил, что OP хочет сохранить относительные пути, а не удалить все пути.Вдохновленный ответом Стефана:
Результат:
источник
Может быть проще создать символическую ссылку на папку, которую вы пытаетесь заархивировать, в текущий каталог. Таким образом, вы можете остаться там, где вы есть.
Их символическая ссылка, если хотите.
источник