BandaAncha.eu

Comunidad de usuarios
de fibra, móvil y ADSL

Script clonador de cabras, versión 2,1

BocaDePez
BocaDePez

Script clonador de cabras, versión 2,1.

Este mensaje es para contestar a la pregunta que un usuario empuja ratones publicó en otro post, pero como ese post se llenó de hilos, que más que un post parece ya una telaraña...,
¿Script para duplicar archivo numerándolo?
..., decidí abrir uno nuevo aquí.

Creo que lo conseguí. Se me ocurrió meter los duplicados en un directorio y punto. El script crea el directorio "duplicados" y mete ahí el trabajo, dejando intacto el fichero original, aunque éste tenga el mismo nombre que alguno de los duplicados.

Por ejemplo, tenemos un fichero llamado "nombre.7z.001", y queremos hacer 17 duplicados llamados "nombre.7z.001" hasta "nombre.7z.017". Se ejecutaría así:

"nombre_del_script" "nombre_fichero_a_duplicar" "nombre_ficheros_clonados" "número copias", o sea:

$ ./script.sh nombre.7z.001 nombre.7z. 17

Este es el resultado:

$ cd duplicados; ls
nombre.7z.001 nombre.7z.005 nombre.7z.009 nombre.7z.013 nombre.7z.017
nombre.7z.002 nombre.7z.006 nombre.7z.010 nombre.7z.014
nombre.7z.003 nombre.7z.007 nombre.7z.011 nombre.7z.015
nombre.7z.004 nombre.7z.008 nombre.7z.012 nombre.7z.016

Este es el script:

############################
#!/bin/bash
mkdir duplicados
cabra=0
while [ "$cabra" -lt "$3" ]
do
cp $1 duplicados/$2$cabra
cabra=`expr $cabra + 1`
done
cd duplicados
for file in $2*; do
printf -vqueso $2'%03d' "$((++i))"
[[ -e $queso ]] || \
mv "$file" "$queso"
done
###############################

Sigue siendo una chapuza, pero a lo mejor vale así. A ver si alguien, que no sea un pinche empuja ratones, lo mejora usando menos líneas de código.

Si el directorio "duplicados" ya existe, bash avisa y punto, pero se podría añadir unas líneas al script, para en caso de ya existir ese directorio, que empuje un echo diciendo si se quiere usar dicho directorio, si se quiere meter las cosas ahí dentro, pero creo que no es necesario.

Con este script, versión 2,1, ahora da igual si el fichero original tiene el mismo nombre que algún fichero duplicado. La ventaja de este script es que puedes hacer el número de copias que quieras, y darle el nombre que quieras a las copias. En cualquier caso, puedes modificar el código para adaptarlo a tus necesidades.

Saludos, pinches roedores.

Espero no haberme comido ningún tag br, pues para eso me tomé un café cargado, pero por el color más parecía un café cagado.

BocaDePez
BocaDePez

Clonacabras, versión 2,2.

Ahora tiene una función de seguridad. El script no funciona si se encuentra con un directorio, que ya existía anteriormente, llamado "duplicados".

Para que el script funcione habrá que borrar, o mover de sitio, el antiguo directorio llamado "duplicados".

#!/bin/bash
# Clonacabras, versión 2,2.
if [ -e duplicados ]; then
echo -e "\nAviso:\033[1;5m\n¡El dir duplicados ya existe!\033[0;0m"
echo -e "Borra o menea, si procede, el dir duplicados. :-( \n"
exit
else
mkdir duplicados
cabra=0
while [ "$cabra" -lt "$3" ]
do
cp $1 duplicados/$2$cabra
cabra=`expr $cabra + 1`
done
cd duplicados
for file in $2*; do
printf -vqueso $2'%03d' "$((++i))"
[[ -e $queso ]] || \
mv "$file" "$queso"
done
fi
exit 0
##############################

Todavía no sé como se hace para que los ficheros duplicados aparezcan directamente nombrados como 001, 00n, así que el script primero duplica los ficheros, numerándolos como 1, 2, n, y una vez duplicados los renombra al nombre que sea + 001, 00n, como inventando la rueda cuadrada.

Tengo bash versión 3.2.39. Dicen que la versión 4 tiene mejoras.

El script está probado y funciona bien. Si a ti no te funciona es porque eres un pinche empuja ratones.

🗨️ 7
BocaDePez
BocaDePez

Yo como un gilipollas, perdiendo un poco de tiempo, el lugar de dedicárselo a mis cabras, para ayudar al pinche empuja ratones que necesitaba ese script, y va el tío, en lugar de darme aquí las gracias, en lugar de invitarme a una cerveza, lo que hace es adjudicárselo como propio, como si lo hubiese hecho él, y se da el pego en otro foro diciendo "aunque si alguien tiene un script mejor o sabe mejorar el MÍO... adelante.

espaciolinux.com/foros//viewtopic.php?t=46556

O sea, el tío tiene tiempo para publicar un post adjudicándose ayer el script, pero de este foro, para dar las gracias, no se acuerda, juasjuasjuasjuasssss.

¿TU SCRIPT? No me gustaría tenerte como vecino, pedazo de patán.

¿Merece la pena ayudar a los empuja ratones? Creo que más bien lo que merece es reírse de ellos, y dejarlos que se ahoguen en su propia mierda windosera.

🗨️ 6
BocaDePez
BocaDePez

Nunca te fíes de nadie que lleve corbata, ni de la gente que trata de usted a otras personas. Pulcros por fuera, pero podridos y corruptos por dentro.

Me han robado la receta de un queso, AAAAAAAAAAAAAAAGGGGGGGGGGGGGG.

🗨️ 5
BocaDePez
BocaDePez

Encima va el tío y quita el texto de cabra del código. Quitar el queso pasa, pero quitar la cabra, borrar la cabra, eso es un delito AAAAAAAAAAAAAAAAAHHHGGGGGGGGGGG.

🗨️ 4
BocaDePez
BocaDePez
🗨️ 3
BocaDePez
BocaDePez
🗨️ 2
BocaDePez
BocaDePez
🗨️ 1
BocaDePez
BocaDePez