Encriptar archivos con VIM

Una utilidad muy buena de VIM es la de poder encriptar archivos, la manera de realizarlo es muy sencilla:

$ vim -x archivo.txt

Nos pedirá una contraseña y ya podemos editar el archivo. Si queremos abrirlo con algún otro editor aparecerá encriptado el mensaje, si lo abrimos con vim nos pedirá el password asignado y podremos verlo en texto plano. La verdad es que vim es una navaja suiza, tiene muchas opciones bastante buenas, con esta opción de encriptamiento, ya no tenemos que esconder nuestros archivos los cuales no queremos que vean, simplemente encriptamos y listo.

Recomponer archivos tar.gz que se han descomprimido sin crear directorio

¿A quién no le ha ocurrido? Descargas un fichero.tar.gz en /home/tuuusuario/ , invocas el conjuro para desempaquetar y descomprimir:

tar -xvzf fichero.tar.gz

Y cuando observas el resultado te das cuenta que el muy *HIJO DE ****PIiiI*****uta* se ha descomprimido SIN crear un directorio para el contenido que tiene dentro, o sea, ha dejado todo tu $HOME lleno de ficheros. Es lo que se conoce como una bomba tar.

Bien, el siguiente comando atb (anti-tar-bomb), encontrado en commandlinefu.com, analiza el tar.gz (o .bz2 o .tgz) ANTES de descomprimirlo. Si resulta que se trata de una bomba tar, crea un directorio con el mismo nombre X que el fichero X.tar.gz y luego lo descomprime en X. Magia!

 atb() {shopt -s extglob ; l=$(tar tf $1); if [ $(echo "$l" | wc -l) -eq $(echo "$l" | grep $(echo "$l" | head -n1) | wc -l) ]; then tar xf $1; else mkdir ${1%.t@(ar.gz|ar.bz2|gz|bz|ar)} && tar xf $1 -C ${1%.t@(ar.gz|ar.bz2|gz|bz|ar)}; fi ; shopt -u extglob}