Cómo comprimir recursivamente los archivos del subdirectorio con contraseña

Cómo comprimir recursivamente los archivos del subdirectorio con contraseña

Necesito comprimir recursivamente los archivos del subdirectorio con contraseña y luego eliminar el archivo sin comprimir en el archivo bash.

Hay archivos zip y otros archivos. No quiero volver a comprimir archivos zip. Solo quiero comprimir archivos sin comprimir y mantener el nombre del archivo como el nombre del archivo comprimido.

Por ejemplo, si el nombre del archivo es aaa10.datentonces el nombre del archivo zip debe aaa10.zipcomprimirlo con una contraseña.

Después de comprimir, quiero eliminar el archivo sin comprimir.

[estructura de directorios]

dir1/aaa1.dat ... aaa10.dat
dir1/dir2/dir2_subdir1/aaa.zip, aaa.dat
dir1/dir3/dir3_subdir1/aaa1.dat ... aaa10.dat
dir1/dir3/dir3_subdir2/aaa1.dat ... aaa20.dat, aaa1.zip ... aaa10.zip
dir1/dir3/dir3_subdir2/dir3_subdir2_subdir1/aaa1.dat ... aaa20.dat, aaa1.zip ... aaa10.zip

Respuesta1

Puedes hacer esto con un findcomando bastante complicado, que busca todos los archivos ".dat" y luego los comprime. Pero poner la parte zip en un script separado es mucho más fácil de mostrar:

find . -name '*.dat' -exec my-script {} \;

y my-script(que tiene que estar en tu PATH):

#!/bin/sh
zip -P my-password -m $(dirname $1)/$(basename $1 .dat).zip $1

ymy-passwordPor supuesto, es lo que elijas.

información relacionada