FIND: Buscar ficheros y algo más.

 *Busca todos los ficheros y sus subdirectorios y elimina los que tengan .. en su nombre.
find . | rename «s/(..)/./»

* Renombrar de forma recursiva. Renombre Fronte por cover.
find . -name «Fronte.jpg» -exec rename ‘s/Fronte/cover/’ {} ;

* Renombrar en subdirectorios los jpeg por jpg., pudiéndose jpeg mayúscula o minúscula.
find . -iname «*.jpeg» -exec rename ‘y/jpeg/jpg/’ {} ; 

 *Borrar ficheros que empiza por parentesis.

find . -name «*(*» -exec rm  {} ;

 * Borrar ficheros vacios en la carpeta  /media/backup/

find /media/backup/ -type f -size 0 -exec rm {} ;

Decargar repositorios privados bitbucket con script en bash

Seguidamente se explica con descargar repositorios de bitbucket privados, es decir, con usuario y contraseña, a través de las firmas públicas.

1. Crear fichero de clave publica:  ~/.ssh/id_rsa
ssh-keygen

2. Cargar la clave:
ssh-add ~/.ssh/id_rsa

3. En bitbucket en administrar perfil ir a crear clave ssh.
Copiar el fichero  ~/.ssh/id_rsa en un clave nueva.

xclip -sel clip < ~/.ssh/id_rsa.pub

4. Crear el fichero: ~/.ssh/confg

  Host bitbucket.org
User git
Hostname altssh.bitbucket.org
IdentityFile ~/.ssh/git_id_rsa
IdentitiesOnly yes
Port 443

5. Crear el fichero: gitclonealumnos.sh

t=1
p=»/home/paco/NetBeansProjects/»
c=${p}»tema»${t}
if [ ! -d ${c} ];then
 echo «Creando $c»
 mkdir ${c}
fi
ssh-add ~/.ssh/id_rsa
cd ${c}
for t in $(seq 7 200);do
    git clone ssh://git@altssh.bitbucket.org:443/1516ceed${t}/1516ceed${t}prgt1e1
done

Rename, grep y sed

Seguidamente teneis un script que permite cambiar el tema de las prácticas de java de forma automática.

echo «Renombrando ficheros con Ejemplo05 por Ejemplo07»
rename -v ‘s/Ejemplo07/Ejemplo05/’ *.java

for i in $(ls *.java);do
 echo $i

 echo «Borrando lineas con el texto package»
 cat $i | grep  -Ev package > t$i
 mv t$i $i

 echo «Reemplazando el testo Ejemplo07 por Ejemplo05»
 cat $i | sed ‘s/Ejemplo07/Ejemplo05/g’ > t$i
 mv  t$i $i
done

ROTAR FONDOS CON GNOME Y BASH

# fondorotar.sh
# Por Paco Aldarias
# 8.1.11
# Esta función rota los fondos del escritorio gnome

usuario=»/home/paco»
dirfondos=»/media/sda5/fotos»

lanzador=»$usuario/Escritorio/Fondo.desktop»
icono=»pitivi»

fimagenes=»/tmp/fimagenes.txt»
ftot=»/tmp/ftot.txt»

#***********************
function lanzador
{
echo «#!/usr/bin/env xdg-open» > $lanzador
echo «[Desktop Entry]»>> $lanzador
echo «Version=1.0″>> $lanzador
echo «Type=Application»>> $lanzador
echo «Terminal=false»>> $lanzador
echo «Icon[es_ES]=pitivi»>> $lanzador
echo «Exec=bash /home/paco/fondorotar.sh»>> $lanzador
echo «Name[es_ES]=Fondo $1″>> $lanzador
echo «Icon=gparted»>> $lanzador
echo «Name=Fondo $1″>> $lanzador
}

#***********************
function cambia
{
gconftool-2 -t str -s /desktop/gnome/background/picture_filename $1
#Possible values are «none», «wallpaper» (eg tiled), «centered», «scaled», «stretched»
gconftool-2 -t string -s /desktop/gnome/background/picture_options «stretched»
}

#***********************
function numero
{
num=$1
tema=$(cat $fimagenes | sed -n ${num}L)
cambia «$tema»
lanzador «$tema»
}

#***************** MAIN

# Si no existe lo crea
if [ ! -f $fimagenes ]; then
find $dirfondos -iname ‘*.jpg’ -o -iname ‘*.png’ -o -iname ‘*.svg’ > $fimagenes
cat $fimagenes | wc -l > $ftot
fi

# Total de fondos.
tot=$(cat $ftot)

# Numero aleatorio
num=$(($RANDOM%$tot))
numero $num

Parar una aplicacion cuando otras se ejecutan

#!/bin/bash
# Por Paco Aldarias.
# 23.8.2009
# idle.sh
# Este scripts en bash permite activar
# mldonkey cuando esta idle o inactivo
# Siendo el estado activo, cuando se ejecuta firefox xql etc

apli=»firefox xql et.x86″
temp=»/tmp/idle.txt»
ml=»/home/paco/mldonkey.sh»
flog=»/tmp/idle.log»
log=1

[ -f $flog ] && rm -f $flog
[ $log -eq 1 ] && echo «Arrancado: $(date +%H:%M:%S) $flog» >> $flog

# tiempos en segundos
tini=3m
tidle=1m
tbusy=5m

# Limpiamos si esta en ejecución el script.
if [ -f $temp ];then
kill $(cat $temp)
rm -f $temp
fi

# Si esta en marcha paramos ml
proc=$(ps aux | grep mlnet | grep -v grep | wc -l)
[ $proc -gt 0 ] && $ml stop
[ $1 ] && [ $1 = «stop» ] && exit

sleep $tini

# Bucle infinito
while :
do
descargar=1

# Hacemos esto por cada aplicacion que queremos que para ml
for i in $(echo $apli)
do
if [ $descargar -eq 1 ];then
up=$(ps aux | grep «$i» | grep -v grep | awk ‘{print $11}’)
if [ $up ];then
descargar=0
[ $log -eq 1 ] && echo «UP: $up $i»>> $flog
fi
fi
done

# Descargamos. Ponemos en marcha mldonkey
if [ $descargar -eq 1 ]
then
[ $log -eq 1 ] && echo «$(date +%H:%M:%S) Podemos descargar» >> $flog
if [ ! -f $temp ];then
echo $$ > $temp
sh $ml start
fi
sleep $tidle
# Apagamos. Paramos mldonkey
else
[ $log -eq 1 ] && echo «$(date +%H:%M:%S) No podemos descargar» >> $flog
if [ -f $temp ];then
sh $ml stop
rm -f $temp
fi
sleep $tbusy
fi

done