Comprimir carpetas con contraseña a través de la línea de comando

59

Me gustaría saber si es posible hacer lo siguiente a través de CLI.

Tengo una carpeta Fque contiene varias subcarpetas y algunos archivos. Quiero comprimir la carpeta Fen un .ziparchivo con el "extracto de solo contraseña".

UnderDog
fuente
1
Googlers ... → favor dejar de poner cualquier confianza en la contraseña zip “protección” - ver respuesta a continuación
Frank Nocke

Respuestas:

68

Vaya a la carpeta relevante usando el cdcomando como este:

cd /path/to/folder/

(Si su carpeta Festá en su carpeta de Inicio, simplemente puede hacerlo cd ~).

Luego, escriba su terminal:

zip -er F.zip F

Esto le pedirá una contraseña. Dale, y eso creará un archivo zip protegido por contraseña desde esa carpeta.

  • -ehabilita el cifrado para su archivo zip. Esto es lo que hace que solicite la contraseña.
  • -r hace que el comando sea recursivo, lo que significa que todos los archivos dentro de la carpeta se agregarán al archivo zip.
  • F.zip es el nombre del archivo de salida.
  • F es la carpeta que quieres comprimir.

Hay una opción llamada -Pque le permitirá pasar la contraseña en el comando en sí, pero eso no es bueno porque siempre existe la amenaza de mirar por encima del hombro . Además, otros usuarios pueden ver la contraseña usando el ps -efcomando si usa el -Pinterruptor. Con ese -Pinterruptor, el comando se verá así:

zip -P password -r F.zip F
  • Visita man zippara más información.
dedunumax
fuente
-e significa cifrar
dedunumax
Hola, acabo de editar tu pregunta para incluir un poco de contexto. Pero, ¿puede editarlo para incluir su -e means encryptcomentario, así como el significado de la -ropción? ¡Gracias!
Alaa Ali
Tx Dedunu para su entrada. Solo se necesita una aclaración más. ¿Qué pasa si necesito automatizar esto? ... Lo que quiero decir es que, en lugar de pedir una contraseña, ¿puedo establecer una contraseña en el comando?
UnderDog
Agregué eso también.
dedunumax
1
Pero no se recomienda su uso porque se registrará su historial. de lo contrario, otros usuarios pueden ver su contraseña con "ps aux"
dedunumax
40

El cifrado de archivos zip es débil y puede romperse muy fácilmente. En su lugar, use 7zip.

7z a -p Fdirectory.7z /path/to/F
  • a El comando le dice a 7zip que agregue archivos.
  • -p Puede dejarlo en blanco para que le pregunte interactivamente o escriba su contraseña aquí.
  • Fdirectory.7z es el nombre del archivo que se creará.
  • /path/to/Fes la ruta de su directorio. Puede ser relativa o ruta completa.

Es recomendable no escribir la contraseña en el shell ya que es visible para cualquier persona con acceso al /procdirectorio.

Braiam
fuente
3
Parece que si -psolo pasa 7zy omite la contraseña, la solicita de forma interactiva, incluso una segunda vez para confirmación.
ssc
@ssc esa es la opción más útil, pero no está en las páginas del manual ..
Braiam
Intenté el comando anterior para comprimir una carpeta con pocos archivos con un tamaño total de ~ 19kB. ¡Sin embargo, se tarda unos 2 minutos! ¿Por qué lleva tanto tiempo?
BringBackCommodore64
2
@ BringBackCommodore64 No use el indicador -r para recurrir. 7z repetirá el directorio de origen sin esa bandera. -ren su lugar, agregará todos los archivos y subdirectorios del directorio de trabajo actual . La página de manual para 7z advierte específicamente contra esto y dice que esta bandera debe evitarse. linux.die.net/man/1/7z
Håken Lid
1
@ rubo77 cualquier formato está sujeto a la fuerza bruta, pero 7zip algo no se puede romper fácilmente, como se muestra en la respuesta donde la contraseña de> 12 caracteres podría ser imposible.
Braiam