CyberAlberto

Mi rincón personal en internet

Ampliación de los scripts de compresión

Hace unos días mostré el código para comprimir en formato .tar.gz y .tar.bz2.

Ahora lo he ampliado para que comprima en formato .tar.7z. El formato 7zip es un revolucionario sistema de compresión con altas tasas de compresión y es además multithreading.

El código del script ahora requiere de 4 ejecutables en el path: tar, gzip, bzip2 y 7za.

Script comprime:

#!/bin/bash

if [ "$2" = "gzip" ]; then
	echo "Se ha elegido gzip como compresor."
	compresor="z"
	extension="gz"
else
	if [ "$2" = "bzip" ]; then
		echo "Se ha elegido bzip2 como compresor."
		compresor="j"
		extension="bz2"
	else
		if [ "$2" = "" ]; then
			compresor="z"
			extension="gz"
		else
			if [ "$2" = "7zip" ]; then
				compresor="7"
				extension="7z"
			else
				echo "Error: El parámetro debe ser gzip, bzip o 7zip"
				exit 1
			fi
		fi
	fi
fi

if [ $1 ] ; then
	FICHERO=$(basename $1)
	if [ "$compresor" = "7" ]; then
		tar -cvf - . | 7za a -si ~/$FICHERO.tar.$extension
	else
		tar cvf$compresor ~/$FICHERO.tar.$extension .
	fi
	echo
	echo Fichero ~/$FICHERO.tar.$extension creado.
	exit 0
fi

echo
echo Script para comprimir ficheros y directorios, uso:
echo
echo $(basename $0) NOMBRE \[FORMATO\]
echo
echo \(Donde NOMBRE indica el nombre del fichero que se va a generar tras comprimir
echo el directorio actual y FORMATO el compresor a usar\)
echo
echo Nota: Si no se indica FORMATO, se utilizará gzip.
echo Formatos aceptados: gzip, bzip y 7zip
echo
exit 1

Script descomprime:

#!/bin/bash

if [ "$1" != "" ]; then
	if [ -f "$1" ] ; then
		DIRECTORIO=$(basename $(basename "$1" .tgz) .tar.gz)
		DIRECTORIO=$(basename $(basename "$DIRECTORIO" .tbz2) .tar.bz2)
		DIRECTORIO=$(basename $(basename "$DIRECTORIO" .t7z) .tar.7z)
		EXTCHK=$(basename $(basename "$1" .t7z) .tar.7z)
		if [ "$EXTCHK" = "$DIRECTORIO" ]; then
			EXTENSION="7z"
		else
			EXTENSION="(none)"
		fi
		if [ -d "$DIRECTORIO" ] ; then
			echo
			echo Error: No se puede descomprimir, existe el directorio ./$DIRECTORIO
			exit 1
		else
			mkdir "$DIRECTORIO"
			if [ "$EXTENSION" = "7z" ]; then
				7za e -so "$1" | tar -xvC "$DIRECTORIO"
			else
				tar -xvC "$DIRECTORIO" -f "$1"
			fi
			echo
			echo Fichero $1 descomprimido.
			exit 0
		fi
	fi
fi

echo
echo Script para descomprimir ficheros y directorios en formato .tgz \(.tar.gz\),
echo .tbz2 \(.tar.bz2\) o .t7z \(.tar.7z\), uso:
echo
echo $(basename $0) FICHERO
echo
echo \(Donde FICHERO indica el nombre del fichero comprimido\)
echo
echo Nota: se descomprime a un directorio el cual no debe existir.
echo
exit 1
Anuncios

Jueves, 19 febrero 2009 Posted by | programación, Script bash | Comentarios desactivados en Ampliación de los scripts de compresión

Los patosos guardias civiles humillan a un científico canadiense

Estas cosas suelen pasar en España, donde ya somos una caricatura de nosotros mismos. Un científico canadiense recién contratado por la comunidad de Madrid fué esposado, despojado de su pasaporte legal y humillado en el aeropuerto de Barajas. Tras ver que toda su documentación estaba en regla, le dan una palmadita en la espalda para que se vaya, pero el ha perdido algo más que la dignidad: su vuelo hacia Otawa.

James Aweya, que es doctor en Ingeniería eléctrica e informática, no pudo imaginarse cómo lo iban a tratar unos catetos españoles que se creen que todo el que es negro es un delincuente. Sin ninguna justificación lo derribaron y una vez en el suelo lo esposaron y se lo llevaron a un cuartucho donde lo retuvieron sin quitarle las esposas cerca de una hora. Toda esa parafernalia y toda esa chulería que tanto caracteriza a este cuerpo de la benemérita fué porque James no entendía nada de Español e hizo caso omiso cuando quiso pasar por el arco de detección de metales.

La Comunidad de Madrid contrató al Dr. James para cubrir el puesto de director científico del centro de investigación IMDEA Redes. En este viaje vino a Madrid a impartir una conferencia en la universidad. A los dos días quiso regresar a Otawa para recoger sus pertenencias e instalarse en España. Pero hete aquí que para su desgracia conoció la brutalidad de la “Guardia Sivil”.

El Dr. James, como es normal, ha puesto una denuncia y ha rechazado el puesto que la comunidad de Madrid le ofertó. Otro científico que perdemos. Es que Spain is different, un país de catetos que no tiene remedio.

La verdad es que no sé en qué Zoo han amaestrado a estos gorilas de la Guardia Civil, sólo espero que la sanción sea ejemplar y que aprendan a a tratar a las personas dignamente, ya que el trato recibido a ha sido vejatorio, tanto para una persona legal como a una persona ilegal.

Miércoles, 18 febrero 2009 Posted by | A la española, Personal, Reflexiones | Comentarios desactivados en Los patosos guardias civiles humillan a un científico canadiense

Cómo cambian los tiempos

La historia de los reproductores de música digital es relativamente moderna. Uno de los primeros reproductores de memoria sólida fué el RIO PMP300 de la compañía Diamond. Su capacidad era de 32Mb.

Uno de los últimos reproductores basados en memoria flash es el iPod Touch, el modelo superior tiene 32Gb, mil veces más capacidad y sólo ha transcurrido una década… ¿qué capacidades nos deparará el futuro?.

Crecer al mismo ritmo que lo ha hecho en diez años sería una locura, ya que muy poca gente escucha/almacena más de 100Gb.

Ahora voy a contar una batallita de abuelo: En esa primera época de los reproductores recuerdo un modelo de Creative Labs que me enamoró: Creative Nomad Jukebox de 6Gb de capacidad. Constaba de un disco duro de 6Gb de 2.5” (los normales de un ordenador portátil). Aunque debido al extremadamente alto precio me tuve que conformar con el cutre Easy Go CD MP3 Player, que me salió bastante malo, igual que a mucha gente.

Martes, 17 febrero 2009 Posted by | Curiosidades, Personal | Comentarios desactivados en Cómo cambian los tiempos

Las 18 drogas más adictivas

Encontré por casualidad esta lista de las drogas más adictivas. Primero empieza por la más “suave” (La Mescalina) y termina por la más fuerte.

Es curioso que 3 de estas drogas sean legales (Nicotina, Cafeína y Alcohol) y otra que sea relitivamente fácil de conseguir legalmente (El Valium). Además de que gozan de aceptación social.

No me esperaba menos de la nicotina, que ocupa orgullosamente el primer puesto. La nicotina es la droga más adictiva del mundo y los gobiernos no hacen nada por erradicarla, y los fumadores pasivos nos vemos obligados a tomar nuestra dosis diaria queramos o no.

¿Porqué el gobierno no ilegaliza el tabaco si es tan mortífero?. Porque los beneficios económicos son brutales. Ya lo dijo Quevedo: Poderoso caballero es Don Dinero.

Martes, 17 febrero 2009 Posted by | Curiosidades | Comentarios desactivados en Las 18 drogas más adictivas

Recompensa de 250.000$

Microsoft ofrece esta cantidad de dinero al que demuestre quién es el creador del virus llamado ‘Conficker’ o ‘Downadup’. Parece ser que es un virus algo peligroso, sobre todo siendo Windows un sistema operativo con tanto agujeros de seguridad.

Aunque no hay que negar que estrategicamente también interesa que Windows siga siendo un “quesito de gruyère”, ya que de algo tienen que vivir la fuerte industria de los Antivirus. Por citar algunos ejemplos: AhnLab, ZoneAlarm, Windows OneCare, F-Secure, bitdefender, QuickHeal, McAfee, VISION POWER, K7 Computing, Panda, AVG, KASPERSKY, Norton y TREND MICRO.

Cada día estoy más contento de tener un ordenador libre de virus Windows. Hay que destacar que la seguridad de un sistema UNIX (incluyendo GNU/Linux) se basa en una arquitectura sólida poco vulnerable, muy centrada en la seguridad.

Viernes, 13 febrero 2009 Posted by | Curiosidades, Informática e Internet, Noticias | 7 comentarios

Afortunado en juego, desgraciado en amores

Es muy curioso: la palabra casino tiene más ocurrencias en google que la palabra sexo.

O sea, que podemos hacer la siguiente afirmación: más ludópatas que obsesos sexuales .

Jueves, 12 febrero 2009 Posted by | Curiosidades | Comentarios desactivados en Afortunado en juego, desgraciado en amores

Bicentenario del nacimiento de Charles Darwin

Tal día como hoy, pero de 1809 nació uno de los más grandes naturistas de la humanidad. Sus ideas revolucionarias han molestado bastante a La Iglesia, que hizo que sirviera de blanco de innumerables críticas y burlas ya que propone que las especies evolucionan y no son seres estáticos como “dios los ha creado”.

Para saber más de este ilustre personaje puedes visitar la página de la Wikipedia.

Según los historiadores sus últimas palabras, en el lecho de muerte, fueron dirigidas a su esposa:

“Casi ha merecido la pena estar enfermo para recibir vuestros cuidados”.

Fue una persona que estuvo largos años enfermo.

Jueves, 12 febrero 2009 Posted by | Cultura, Efemérides, Investigación, Libre pensamiento | Comentarios desactivados en Bicentenario del nacimiento de Charles Darwin

El timo de la estampita 2.0

He probado el software IM+ for Skype que me ha dejado un profundo mal sabor de boca y un agujero de 6€ tras una llamada por teléfono.

Estaba buscando un programa como el Skype para el iPod touch, tras probar uno gratuito como el Fring! (que va realmente mal) me decidí por uno de pago: IM+ for Skype.

El aspecto gráfico era muy bueno y el problema empezó cuando realicé la primera llamada de prueba. Llamé a un teléfono fijo y de repente empieza a sonar mi móvil, tras responder oigo un tono de llamada y al momento me contesta la persona llamada, pero… ¿El sistema de IM+ me había llamado a mi móvil?, si: habia usado mi saldo de SkypeOut para ello. En nigún lugar te informan de esto así que me han timado de la manera más vil.

Me da rabia que haya gentuza de esta calaña. No sólo me han robado el precio de esa llamada a precio de oro, sino que me han robado 7.99€ del precio del programa.

Los usuarios de Skype tendremos que seguir esperando alguna otra solución eficaz para poder usar el sistema en nuestros dispositivos portátiles.

Domingo, 8 febrero 2009 Posted by | Informática e Internet, Reflexiones | Comentarios desactivados en El timo de la estampita 2.0

Scripts para compresión y descompresión

Aunque esto se puede ya hacer de una manera muy fácil gracias a las interfaces gráficas y programas de compresión en modo gráfico, hay momentos en los que necesitamos de un simple script que comprima la carpeta actual o descomprima un fichero en formato .tar.gz, .tbz, .tar.bz o .tbz. Esas veces que estás en modo texto programando y quieres empaquetar todo el código fuente en un simple fichero.

Estos scripts tienen ya muchos años de antigüedad, pero al recordar que aún no lo tenía instalado en mi portátil, he decidido mostrarlo por si a alguien le sirve.

El compresor:

El compresor dado un nombre de fichero comprime el directorio actual y lo almacena en el directorio home del usuario. Si además le indicamos gz o bzip lo comprime en el formato indicado.

Por ejemplo: $ comprime fichero bzip que crea el fichero ~/fichero.tar.bz el cual contiene todos los ficheros del directorio en el cual se lanzó el compresor. El código es:

#!/bin/bash

if [ "$2" = "gzip" ]; then
	echo "Se ha elegido gzip como compresor."
	compresor="z"
	extension="gz"
else
	if [ "$2" = "bzip" ]; then
		echo "Se ha elegido bzip2 como compresor."
		compresor="j"
		extension="bz2"
	else
		if [ "$2" = "" ]; then
			compresor="z"
			extension="gz"
		else
			echo "Error: El parámetro debe ser gzip o bzip"
			exit 1
		fi
	fi
fi

if [ $1 ] ; then
	FICHERO=$(basename $1)
	tar cvf$compresor ~/$FICHERO.tar.$extension .
	echo
	echo Fichero ~/$FICHERO.tar.$extension creado.
	exit 0
fi

echo
echo Script para comprimir ficheros y directorios, uso:
echo
echo $(basename $0) NOMBRE \[FORMATO\]
echo
echo \(Donde NOMBRE indica el nombre del fichero que se va a generar tras comprimir el directorio actual y FORMATO el compresor a usar\)
echo
echo Nota: Si no se indica FORMATO, se utilizará gzip
echo
exit 1

El descompresor:

Descomprime el fichero dentro de un directorio que no debe existir previamente, para evitar sobreescribir su contenido por accidente. Por ejemplo: $ descomprime paquete.tar.gz que genera el directorio paquete que cuelga del directorio actual y descomprime en él el contenido del fichero paquete.tar.gz.

#!/bin/bash

if [ "$1" != "" ]; then
	if [ -f "$1" ] ; then
		DIRECTORIO=$(basename $(basename "$1" .tgz) .tar.gz)
		DIRECTORIO=$(basename $(basename "$DIRECTORIO" .tbz2) .tar.bz2)
		if [ -d "$DIRECTORIO" ] ; then
			echo
			echo Error: No se puede descomprimir, existe el directorio ./$DIRECTORIO
			exit 1
		else
			mkdir "$DIRECTORIO"
			tar -xvC "$DIRECTORIO" -f "$1"
			echo
			echo Fichero $1 descomprimido.
			exit 0
		fi
	fi
fi

echo
echo Script para descomprimir ficheros y directorios en formato .tgz (.tar.gz) o .tbz2 (.tar.bz2), uso:
echo
echo $(basename $0) FICHERO
echo
echo \(Donde FICHERO indica el nombre del fichero comprimido\)
echo
echo Nota: se descomprime a un directorio.
echo
exit 1

Los scripts estan probados y funcionan en Linux, Solaris y MacOS, pero requieren que esté en el PATH tanto la utilidad tar como gzip y bzip2. Estos scripts son de uso libre, además las críticas positivas o posibles mejoras siempre son bien recibidas.

Y basándose en el compresor, puede que nos venga bien este script que comprime el directorio actual sin tener que especificar nada y añade la fecha al nombre del fichero, la utilidad se llama backup. Muy útil para guardar un historial del contenido de un proyecto.

#!/bin/bash

nombre=$(date +%Y-%m-%d.%H-%M).$(basename $(pwd))

comprime \"$nombre\" bzip

Jueves, 5 febrero 2009 Posted by | Personal, programación, Script bash | 1 comentario

La frase

Una contundente frase leída en una web y cuyo autor no se indica:

Fracasa la especie humana cuando deja de ser humana y lo que gobierna es el dinero. Cuando gobierna el dinero, gobierna la barbarie, el conflicto, el sufrimiento, incluida la muerte de lo más humano (la muerte en vida) porque el amor, y por tanto la justicia son mera ilusión
– cuando gobiena el dinero –

Miércoles, 4 febrero 2009 Posted by | Análisis, Frases célebres, Reflexiones | Comentarios desactivados en La frase