Стиснення папок паролем за допомогою командного рядка


59

Мені хотілося б знати, чи можна зробити наступне через CLI.

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



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

Відповіді:


67

Перейдіть до відповідної папки за допомогою такої 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 means encryptкоментар, а також значення -rпараметра. Дякую!
Алаа Алі

Tx Dedunu для вашого вводу. Потрібно ще одне уточнення. Що, якщо мені потрібно це автоматизувати ... Що я маю на увазі, якщо замість запиту на пароль я можу встановити пароль у самій команді?
UnderDog

Я також додав це.
дедунумакс

1
Але користуватися вкрай не рекомендується, оскільки ваша історія буде записана. в іншому випадку інші користувачі можуть побачити ваш пароль з "ps aux"
dedunumax

40

Шифрування zip-файлів є слабким і може бути зламано дуже легко. Замість цього використовуйте 7zip.

7z a -p Fdirectory.7z /path/to/F
  • a команда повідомляє 7zip додати файли.
  • -p Ви можете або залишити його порожнім, щоб він запитав вас інтерактивно, або введіть тут свій пароль.
  • Fdirectory.7z - це ім'я створеного архіву.
  • /path/to/F- шлях вашого каталогу. Це може бути відносний або повний шлях.

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


3
Здається, якщо ви переходите -pлише до 7zпароля та опускаєте його, він запитує його інтерактивно - навіть удруге для підтвердження.
ssc

@ssc - це найкорисніший варіант, але його немає на сторінках керівництва ..
Braiam

Я спробував вищевказану команду стиснути папку з кількома файлами розміром ~ 19 кБ. Але це займає близько 2 хвилин! Чому це займає так довго?
BringBackCommodore64

2
@ BringBackCommodore64 Не використовуйте прапор -r для повторення. 7z буде повторювати вихідний каталог без цього прапора. -rзамість цього буде додано всі файли та підкаталоги поточного робочого каталогу . Сторінка man для 7z спеціально застерігає від цього і каже, що цього прапора слід уникати. linux.die.net/man/1/7z
Håken Lid

1
@ rubo77 будь-який формат може піддатися грубій силі, але 7zip algo не легко зламати, як показує сама відповідь, де> пароль 12 символів може бути неможливим.
Брайам
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.