Создать структуру каталогов zip-ignore
Мне нужно создать zip, используя команду
zip /dir/to/file/newZip /data/to/zip/data.txt
Это работает, но созданный zip файл создает структуру каталогов, имитирующую каталог в необработанный файл. Много лишних папок, которые мне не нужны.
Я не нашел ответа беглым взглядом над страницей man или google hunt.
Ответы
Ответ 1
Вы можете использовать -j
.
-j
--junk-paths
Store just the name of a saved file (junk the path), and do not
store directory names. By default, zip will store the full path
(relative to the current directory).
Ответ 2
Используйте параметр -j
:
-j Store just the name of a saved file (junk the path), and do not
store directory names. By default, zip will store the full path
(relative to the current path).
Ответ 3
Немного связанный - я искал решение сделать то же самое для каталогов.
К сожалению, опция -j не работает для этого: (
Вот хорошее решение о том, как это сделать:
https://superuser.com/questions/119649/avoid-unwanted-path-in-zip-file
Ответ 4
Использование -j
не будет работать вместе с опцией -r
.
Таким образом, обход для него может быть следующим:
cd path/to/parent/dir/;
zip -r complete/path/to/name.zip ./* ;
cd -;
Или встроенная версия
cd path/to/parent/dir/ && zip -r complete/path/to/name.zip ./* && cd -
вы можете направить вывод на /dev/null
, если вы не хотите, чтобы вывод cd -
отображался на экране
Ответ 5
В качестве альтернативы вы можете создать временную символическую ссылку на ваш файл:
ln -s /data/to/zip/data.txt data.txt
zip /dir/to/file/newZip !$
rm !$
Это также работает для каталога.
Ответ 6
Принятое решение не работает для меня, потому что у меня есть файлы и папки, которые мне нужны для zip. Если я использую параметр -j, он не добавит эти папки в zip.
Я нашел это решение, которое работает для меня:
tar -czpvf filename.zip -C path/to/directory/folder .
Все в папке будет в zip, файлах и папках. Обратите внимание, что вы должны добавить период в конец.
Ответ 7
tar не работает для меня.
tar -czpvf filename.zip -C path/to/directory/folder .
Я получаю сообщение об ошибке при попытке разархивировать файл filename.zip
Подпись под конец центральной директории не найдена.
jar отлично работает.
jar cvf filename.zip -C path/to/directory/folder .