Compactando pastas com senha via linha de comando

59

Gostaria de saber se é possível fazer o seguinte via CLI.

Eu tenho uma pasta Fque contém várias subpastas e alguns arquivos. Quero compactar a pasta Fno .ziparquivo com o "extrato somente de senha".

UnderDog
fonte
1
Googlers ... → por favor, pare de colocar qualquer confiança em senha zip “proteção” - veja a resposta abaixo
Frank Nocke

Respostas:

68

Vá para a pasta relevante usando o cdcomando como este:

cd /path/to/folder/

(Se a sua pasta Festiver na sua pasta pessoal, você pode simplesmente fazê-lo cd ~.)

Em seguida, digite seu terminal:

zip -er F.zip F

Isso solicitará uma senha. Dê, e isso criará um arquivo zip protegido por senha a partir dessa pasta.

  • -eativa a criptografia para seu arquivo zip. É isso que faz com que solicite a senha.
  • -r torna o comando recursivo, o que significa que todos os arquivos dentro da pasta serão adicionados ao arquivo zip.
  • F.zip é o nome do arquivo de saída.
  • F é a pasta que você deseja compactar.

Existe uma opção chamada -Pque permitirá que você passe a senha no próprio comando, mas isso não é bom porque sempre há a ameaça de espiar por cima do ombro . Outros usuários também podem ver a senha usando o ps -efcomando se você usar -Pswitch. Com essa -Popção, o comando ficará assim:

zip -P password -r F.zip F
  • Visite man zippara mais informações.
dedunumax
fonte
-e significa encrypt
dedunumax 8/13
Ei, acabei de editar sua pergunta para incluir um pouco de contexto. Mas você pode editá-lo para incluir seu -e means encryptcomentário, bem como o significado da -ropção. Obrigado!
Alaa Ali
Tx Dedunu para sua entrada. Apenas mais um esclarecimento necessário. E se eu precisar automatizar isso ... O que quero dizer é que, em vez de solicitar uma senha, posso definir uma senha no próprio comando?
FRACA
Eu adicionei isso também.
Dedunumax
1
Mas é altamente recomendável não usar, porque seu histórico será gravado. caso contrário, outros usuários podem ver a sua senha com "aux ps"
dedunumax
40

A criptografia dos arquivos zip é fraca e pode ser quebrada com muita facilidade. Em vez disso, use 7zip.

7z a -p Fdirectory.7z /path/to/F
  • a O comando diz ao 7zip para adicionar arquivos.
  • -p Você pode deixá-lo em branco para que você solicite interativamente ou digite sua senha aqui.
  • Fdirectory.7z é o nome do arquivo a ser criado.
  • /path/to/Fé o caminho do seu diretório. Pode ser caminho relativo ou completo.

É recomendável não digitar a senha no shell, pois é visível para qualquer pessoa com acesso ao /procdiretório.

Braiam
fonte
3
Parece que, se você passar -papenas 7ze omitir a senha, ela será solicitada de forma interativa - até uma segunda vez para confirmação.
ssc 14/05
@ssc que é a opção mais útil, ainda não está nas páginas de manual ..
Braiam
Eu tentei o comando acima para compactar uma pasta com poucos arquivos, totalizando ~ 19kB de tamanho. No entanto, leva cerca de 2 minutos! Por que demora tanto?
BringBackCommodore64
2
@ BringBackCommodore64 Não use o sinalizador -r para se recuperar. 7z vai recurse o diretório de origem sem que a bandeira. -rem vez disso, adicionará todos os arquivos e subdiretórios do diretório de trabalho atual . A página de manual do 7z adverte especificamente contra isso e diz que esse sinalizador deve ser evitado. linux.die.net/man/1/7z
Håken Lid
1
@ rubo77 qualquer formato é passível de aplicação forçada, mas o 7zip algo não é facilmente quebrável, como mostra a própria resposta em que a senha de> 12 caracteres pode ser impossível.
Braiam 07/02