Zip, включая скрытые файлы

88

В Linux я могу заархивировать все (кроме скрытых файлов) в текущем каталоге, выполнив:

zip 1.zip *

Но как мне включить скрытые файлы?

Джон-Джонс
источник

Ответы:

163

РЕДАКТИРОВАТЬ: правильный способzip -r 1.zip .

Команды, показанные в моем предыдущем ответе ниже, неверны, потому что они также включают родительский каталог.


Вы пробовали это:

zip yourfile.zip sourcedir/* .*

или ты в твоем случае

zip 1.zip * .[^.]*'

Он также должен включать все скрытые файлы.

Гуннар
источник
1
это в значительной степени работает, но теперь я также получаю ../, которого я не думаю, что хочу.
Джон-Джонс
под ../ вы имеете в виду, что вы также сжимаете файлы из каталога выше?
Gunnar
1
по всей видимости. Когда я делаю zip 1.zip *. * (В папке с подпапкой a и скрытым файлом с именем '.hidden_file'), я получаю:
john-jones
добавление: a / (сохранено 0%) добавление: ../ (сохранено 0%) добавление: .hidden_file (сохранено 0%)
john-jones
12
или, как вы сказали, «zip -r 1.zip.», что также работает и проще.
Джон-Джонс
18

Или вы можете добавить более простые

zip 1.zip ./
Pictoru
источник
12

Просто чтобы убедиться, что это не забыто, поскольку это форум для разработчиков, и многие из нас используют git.

Самый простой способ получить на молнии только то, что вы хотите, - это использовать git archive -o filename.zip branch

код
источник
1
Спасибо! Это было именно то, что мне нужно: гораздо меньше проблем, чем при звонке вручную zip.
Egon
Однако этот подход не включает .git/каталог
ScottMcC
@ScottMcC Если вам нужно что-то, что уже связано с git, вы бы просто клонировали это?
код
Было бы неплохо для передачи с scp
Уильям Руснак
5

Если вы хотите заархивировать все файлы (+ скрытые файлы), используйте: zip -r namefiles.zip. Знак "." все файлы в папке.

zip -r namefiles.zip "folder will zip"
D z
источник
1
Чем ваш ответ отличается от принятого ответа, в котором говорится: «Правильный способ zip -r 1.zip .»?
Саймон MᶜKenzie
@ SimonMᶜKenzie Он также объяснил, что такое "." средства. Я полагаю, это имело значение.
Чунг Лун Юэнь
8
Знак "." НЕ все файлы в папке. Это означает саму «текущую папку», которая в конечном итоге будет включать все ее содержимое.
Ижар Аазми
1

если у вас нет прав на сохранение zip-файла в текущем каталоге, вы можете перейти в каталог, в котором у вас есть права, и ввести

zip -r 1.zip /path/to/source/dir/.

Однако, если .../some_dirвы вводите

unzip 1.zip

тогда ваши файлы будут распакованы в .../some_dir/path/to/source/dir/

Камил Келчевски
источник