'Undebear' masivamente

Post Reply
Message
Author
User avatar
GustavoYz
Posts: 883
Joined: Wed 07 Jul 2010, 05:11
Location: .ar

'Undebear' masivamente

#1 Post by GustavoYz »

Editado.- Nueva versión.
Ver al final de la página o click acá.
Last edited by GustavoYz on Tue 31 May 2011, 05:08, edited 4 times in total.

User avatar
GustavoYz
Posts: 883
Joined: Wed 07 Jul 2010, 05:11
Location: .ar

#2 Post by GustavoYz »

Borrado.

mama21mama

#3 Post by mama21mama »

cual era el error?

User avatar
GustavoYz
Posts: 883
Joined: Wed 07 Jul 2010, 05:11
Location: .ar

#4 Post by GustavoYz »

@mama21mama: en el $IFS !
Si NO hay espacios en los nombres, no hay problema.

wow
Posts: 1052
Joined: Fri 30 Jun 2006, 00:18
Location: Peru

#5 Post by wow »

¿Probaste añadiendo comillas?

Code: Select all

for i in *.deb ; do undeb "$i" ; done
[url=http://www.puppylinux.com][img]http://i.imgur.com/M4OyHe1.gif[/img][/url]

User avatar
GustavoYz
Posts: 883
Joined: Wed 07 Jul 2010, 05:11
Location: .ar

#6 Post by GustavoYz »

Si, yo no tuve ningún problema.
Me dí cuenta que había casos 'raros' en los que podía fallar. Por las dudas, me pareció los más saludable borrarlos, si total se puede usar el undeb y el único que hace estas cosas soy yo...

Si, las comillas funcionan también.

User avatar
GustavoYz
Posts: 883
Joined: Wed 07 Jul 2010, 05:11
Location: .ar

Undebo

#7 Post by GustavoYz »

Hice una nueva versión, todo en un sólo script.
Ahora también funciona desde la consola además de hacerlo como siempre, vía doble click, donde toma los debs de la carpeta desde la que se ejecutó.
Lo apodé 'Undebo'. :D

Code: Select all

#!/bin/bash
#Argumento 1 es el path.
[ $1 ] && DIRECTORIO="$1" && CLI="0"
#Si no existe, tomo el path actual.
[ ! $1 ] && DIRECTORIO=`pwd` && CLI="1"

if [ ! -d $DIRECTORIO ];then
	echo $DIRECTORIO no encontrado.
	echo
	echo Verifique la ruta e intente de nuevo.
	echo Error y Final no feliz... Buuuh!
	echo "                                 =("
	#Por si el directorio NO existe.
 exit 1
fi
#---------------------------------------------------------------------

#Aviso
echo "Voy a undebear aca 
$DIRECTORIO"
cd $DIRECTORIO

#Variables generales
NN="1"
UNICO=`date | awk '{print $2 "_" $3 "_" $4 "_" $6}'`
LISTA=`ls -X | sed 's/\t/ /g' | grep --extended-regexp '\.deb$'`

if [ -n "$LISTA" ];then

	mkdir -p $DIRECTORIO/paquetes_$UNICO
	DIRECTORIO2=$DIRECTORIO/paquetes_$UNICO

	for i in $LISTA
		do
		cp `realpath $i` $DIRECTORIO2/$NN.deb
		let "NN = $NN + 1" # 1, 2, 3, 4, 5...
	done

	cd $DIRECTORIO2
	NEOLISTA=`ls -X | sed 's/\t/ /g' | grep --extended-regexp '\.deb$'`

	for i in $NEOLISTA
		do
		dpkg-deb -X $i $DIRECTORIO2
		rm $i
	done

	cd $DIRECTORIO2
	#A modo de backup y log.
	echo `echo $LISTA | sed 's/ /\n/g'| grep -n "deb"| sed 's/:/.deb-->/g'`| sed 's/ /\n/g' > $DIRECTORIO/$UNICO.txt

	#Los greetings... Sientanse libres de borrarlos.
	echo "Exitos!"
	beep -f 65 -l 100 -n -f 131 -l 100 -n -f 261 -l 100 -n -f 523 -l 100 -n -f 1046 -l 100 -n -f 2093 -l 100
	gxmessage -title "Undebebo" -center -bg black -fg green "He terminado de undebear, todo salio bien...
	En $DIRECTORIO va a encontrar una carpeta llamada paquetes
	y un archivo llamado $UNICO.txt con lo que hice.
	Salud!"
	#Si todo sale bien...
	exit 0
	
else
	if [ "$CLI" -eq 0 ]; then
	echo Error? No hay debs aca...
	echo Fin.
	echo "    =("
	else
	gxmessage -title "Undebo" -center -bg black -fg green "Error?
	No hay debs aca... 
	Fin.
	         =("
	fi
	exit 1
fi
Subí el script acá.

Post Reply