Сжатие папок с паролем через командную строку

59

Я хотел бы знать, возможно ли сделать следующее через CLI.

У меня есть папка, Fкоторая содержит несколько подпапок и несколько файлов. Я хочу сжать папку Fв .zipфайл с «извлечением пароля только».

неудачник
источник
1
Googlers ... → пожалуйста прекратить помещать любое доверие почтового пароля «защита» - см ответа ниже
Frank Nocke

Ответы:

68

Перейдите в соответствующую папку, используя следующую cdкоманду:

cd /path/to/folder/

(Если ваша папка Fнаходится в вашей домашней папке, вы можете просто сделать cd ~.)

Затем введите свой терминал:

zip -er F.zip F

Это попросит вас ввести пароль. Дайте это, и это создаст защищенный паролем zip-файл из этой папки.

  • -eвключает шифрование для вашего почтового файла. Это то, что заставляет его спрашивать пароль.
  • -r делает команду рекурсивной, то есть все файлы внутри папки будут добавлены в zip-файл.
  • F.zip это имя выходного файла.
  • F это папка, которую вы хотите сжать.

Существует опция -P, которая позволяет вам передавать пароль в самой команде, но это нехорошо, потому что всегда есть угроза заглянуть через плечо . Также другие пользователи могут видеть пароль с помощью ps -efкоманды, если вы используете -Pпереключатель. С этим -Pпереключателем команда будет выглядеть так:

zip -P password -r F.zip F
  • Посетите man zipдля получения дополнительной информации.
dedunumax
источник
-e означает шифрование
dedunumax
Эй, я только что отредактировал твой вопрос, чтобы включить немного контекста. Но можете ли вы отредактировать его, включив в него свой -e means encryptкомментарий, а также значение -rпараметра. Спасибо!
Алаа Али
Tx Dedunu для вашего ввода. Нужно еще одно уточнение. Что если мне нужно автоматизировать это ... Что я имею в виду, если вместо запроса пароля я могу установить пароль в самой команде?
UnderDog
Я добавил это также.
dedunumax,
1
Но использовать его крайне не рекомендуется, потому что ваша история будет записана. в противном случае другие пользователи смогут увидеть ваш пароль с помощью «ps aux»
dedunumax
40

Шифрование zip-файлов слабое и может быть очень легко взломано. Вместо этого используйте 7zip.

7z a -p Fdirectory.7z /path/to/F
  • a Команда говорит 7zip, чтобы добавить файлы.
  • -p Вы можете либо оставить это поле пустым, чтобы он запрашивал вас в интерактивном режиме, либо ввести свой пароль здесь.
  • Fdirectory.7z имя создаваемого архива.
  • /path/to/Fпуть вашего каталога. Это может быть относительный или полный путь.

Рекомендуется не вводить пароль в оболочке, поскольку он виден всем, у кого есть доступ к /procкаталогу.

Braiam
источник
3
Кажется, если вы передаете -pтолько 7zпароль и пропускаете его, он запрашивает его в интерактивном режиме - даже второй раз для подтверждения.
SSC
@ssc, это самый полезный вариант, но его нет на страницах справочника ..
Брайам,
Я попробовал вышеуказанную команду, чтобы сжать папку с несколькими файлами общим размером ~ 19 КБ. Тем не менее, это займет около 2 минут! Почему так долго?
BringBackCommodore64
2
@ BringBackCommodore64 Не используйте флаг -r для рекурсии. 7z будет возвращать исходный каталог без этого флага. -rвместо этого добавит все файлы и подкаталоги текущего рабочего каталога . Страница man для 7z специально предупреждает об этом и говорит, что этого флага следует избегать. linux.die.net/man/1/7z
Хокен Лид
1
@ rubo77 любой формат подвержен грубому обращению, но 7zip algo не легко сломать, как показывает тот самый ответ, где> 12-значный пароль может быть невозможен.
Браам