Kompresowanie folderów za pomocą hasła za pomocą wiersza polecenia

59

Chciałbym wiedzieć, czy można wykonać następujące czynności za pośrednictwem interfejsu CLI.

Mam folder, Fktóry zawiera kilka podfolderów i niektóre pliki. Chcę skompresować folder Fdo .zippliku za pomocą „wyciągu tylko z hasła”.

UnderDog
źródło
1
Googlersi ... → proszę zatrzymać oddanie żadnego zaufania hasłem zip „ochrony” - patrz odpowiedź poniżej
Frank Nocke

Odpowiedzi:

67

Przejdź do odpowiedniego folderu za pomocą następującego cdpolecenia:

cd /path/to/folder/

(Jeśli twój folder Fznajduje się w folderze domowym, możesz to zrobić cd ~.)

Następnie wpisz swój terminal:

zip -er F.zip F

Spowoduje to monit o podanie hasła. Daj go, a utworzy chroniony hasłem plik zip z tego folderu.

  • -ewłącza szyfrowanie pliku zip. Właśnie dlatego prosi o hasło.
  • -r sprawia, że ​​polecenie jest rekurencyjne, co oznacza, że ​​wszystkie pliki w folderze zostaną dodane do pliku zip.
  • F.zip to nazwa pliku wyjściowego.
  • F to folder, który chcesz skompresować.

Istnieje opcja o nazwie -P, która pozwala przekazać hasło w samym poleceniu, ale to nie jest dobre, ponieważ zawsze istnieje zagrożenie zerknięcia przez ramię . Również inni użytkownicy mogą zobaczyć hasło za pomocą ps -efpolecenia, jeśli używasz -Pprzełącznika. Z tym -Pprzełącznikiem polecenie będzie wyglądać następująco:

zip -P password -r F.zip F
  • Odwiedź, man zipaby uzyskać więcej informacji.
dedunumax
źródło
-e oznacza szyfrowanie
dedunumax
Hej, właśnie edytowałem twoje pytanie, aby uwzględnić trochę kontekstu. Ale czy możesz go edytować, aby dołączyć -e means encryptkomentarz, a także znaczenie -ropcji. Dzięki!
Alaa Ali,
Tx Dedunu za twoje wejście. Wystarczy jeszcze jedno wyjaśnienie. Co jeśli muszę zautomatyzować to ... Mam na myśli to, że zamiast pytać o hasło, czy mogę ustawić hasło w samym poleceniu?
UnderDog
Dodałem to również.
dedunumax
1
Ale korzystanie z niego jest wysoce niezalecane, ponieważ twoja historia zostanie zapisana. w przeciwnym razie inni użytkownicy mogą zobaczyć twoje hasło za pomocą „ps aux”
dedunumax
40

Szyfrowanie plików zip jest słabe i można je bardzo łatwo złamać. Zamiast tego użyj 7zip.

7z a -p Fdirectory.7z /path/to/F
  • a polecenie mówi 7zip, aby dodało pliki.
  • -p Możesz albo pozostawić to pole puste, aby pytało Cię interaktywnie, albo wpisać tutaj hasło.
  • Fdirectory.7z to nazwa tworzonego archiwum.
  • /path/to/Fjest ścieżką do twojego katalogu. Może to być ścieżka względna lub pełna.

Zaleca się, aby nie wpisywać hasła w powłoce, ponieważ jest widoczne dla każdego, kto ma dostęp do /prockatalogu.

Braiam
źródło
3
Wygląda na to, że jeśli podasz -ptylko 7zhasło i je pominiesz, poprosi o to interaktywnie - nawet po raz drugi o potwierdzenie.
ssc
@ssc jest to najbardziej przydatna opcja, ale nie ma jej na stronach podręcznika.
Braiam
Próbowałem powyższego polecenia, aby skompresować folder z kilkoma plikami o łącznej wielkości ~ 19kB. A jednak zajmuje to około 2 minut! Dlaczego to trwa tak długo?
BringBackCommodore64
2
@ BringBackCommodore64 Nie używaj flagi -r do ponownego wystąpienia. 7z będzie przeszukanie katalogu źródłowego bez tej flagi. -rzamiast tego doda wszystkie pliki i podkatalogi bieżącego katalogu roboczego . Strona podręcznika 7z wyraźnie ostrzega przed tym i mówi, że flagi tej należy unikać. linux.die.net/man/1/7z
Håken Lid
1
@ rubo77 każdy format może być brutalny, ale 7zip algo nie daje się łatwo złamać, co pokazuje sama odpowiedź, w której hasło> 12 znaków może być niemożliwe.
Braiam