Mengkompres folder dengan kata sandi melalui baris perintah

59

Saya ingin tahu apakah mungkin untuk melakukan hal berikut melalui CLI.

Saya memiliki Folder Fyang berisi beberapa sub folder dan beberapa file. Saya ingin mengompres folder Fmenjadi .zipfile dengan "hanya kata sandi ekstrak".

UnderDog
sumber
1
Googler ... → silakan berhenti menempatkan setiap kepercayaan password zip “perlindungan” - lihat jawaban di bawah
Frank Nocke

Jawaban:

68

Buka folder yang relevan menggunakan cdperintah seperti ini:

cd /path/to/folder/

(Jika folder Anda Fada di folder Beranda, Anda cukup melakukannya cd ~.)

Kemudian, ketikkan terminal Anda:

zip -er F.zip F

Ini akan meminta Anda untuk kata sandi. Berikan, dan itu akan membuat file zip yang dilindungi kata sandi dari folder itu.

  • -emengaktifkan enkripsi untuk file zip Anda. Inilah yang membuatnya meminta kata sandi.
  • -r membuat perintah rekursif, artinya semua file di dalam folder akan ditambahkan ke file zip.
  • F.zip adalah nama file keluaran.
  • F adalah folder yang ingin Anda zip.

Ada opsi yang disebut -Pyang akan memungkinkan Anda untuk memasukkan kata sandi dalam perintah itu sendiri, tetapi itu tidak baik karena selalu ada ancaman mengintip dari balik bahu . Pengguna lain juga dapat melihat kata sandi dengan menggunakan ps -efperintah jika Anda menggunakan -Psakelar. Dengan -Psakelar itu, perintahnya akan terlihat seperti ini:

zip -P password -r F.zip F
  • Kunjungi man zipuntuk informasi lebih lanjut.
dedunumax
sumber
-e berarti mengenkripsi
dedunumax
Hai, saya baru saja mengedit pertanyaan Anda untuk memasukkan sedikit konteks. Tapi bisakah Anda mengeditnya untuk memasukkan -e means encryptkomentar Anda , serta arti dari -ropsi tersebut. Terima kasih!
Alaa Ali
Tx Dedunu untuk masukan Anda. Hanya perlu satu klarifikasi lagi. Bagaimana jika saya perlu mengotomatiskan ini ... Apa yang saya maksud adalah jika alih-alih meminta kata sandi, bisakah saya menetapkan kata sandi dalam perintah itu sendiri?
UnderDog
Saya menambahkan itu juga.
dedunumax
1
Tetapi sangat tidak disarankan untuk digunakan karena riwayat Anda akan direkam. jika tidak, pengguna lain dapat melihat kata sandi Anda dengan "ps aux"
dedunumax
40

Enkripsi file zip lemah dan dapat dipecahkan dengan sangat mudah. Alih-alih menggunakan 7zip.

7z a -p Fdirectory.7z /path/to/F
  • a perintah memberitahu 7zip untuk menambahkan file.
  • -p Anda bisa, biarkan kosong sehingga meminta Anda secara interaktif atau mengetikkan kata sandi Anda di sini.
  • Fdirectory.7z adalah nama arsip yang akan dibuat.
  • /path/to/Fadalah jalur direktori Anda. Ini bisa berupa jalur relatif atau penuh.

Dianjurkan untuk tidak mengetik kata sandi di shell karena itu terlihat oleh siapa pun yang memiliki akses ke /procdirektori.

Braiam
sumber
3
Tampaknya jika Anda -phanya meneruskan 7zdan menghilangkan kata sandi, kata sandi itu meminta secara interaktif - bahkan untuk konfirmasi kedua kalinya.
ssc
@ ssc itu adalah opsi yang paling berguna, namun itu tidak ada di halaman manual ..
Braiam
Saya mencoba perintah di atas untuk mengkompres folder dengan beberapa file berukuran ~ 19kB. Namun Dibutuhkan sekitar 2 menit! Kenapa butuh waktu lama?
BringBackCommodore64
2
@ BringBackCommodore64 Jangan gunakan flag -r untuk muncul kembali. 7z akan mengulang direktori sumber tanpa bendera itu. -rsebagai gantinya akan menambahkan semua file dan subdirektori dari direktori kerja saat ini . Halaman manual untuk 7z secara khusus memperingatkan hal ini dan mengatakan bahwa bendera ini harus dihindari. linux.die.net/man/1/7z
Håken Lid
1
@ rubo77 format apa pun mungkin mengalami kekerasan, tetapi 7zip algo tidak mudah dipecah seperti yang ditunjukkan oleh jawaban di mana kata sandi> 12 karakter mungkin tidak mungkin.
Braiam