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.dat
entonces el nombre del archivo zip debe aaa10.zip
comprimirlo 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 find
comando 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-password
Por supuesto, es lo que elijas.