El siguiente ejemplo permite separar datos, separados por espacio y los muestra ordenados alfabeticamente :
|
1 |
echo "cherry apple peach" | tr " " "\n" | sort |
apple
cherry
peach
El siguiente ejemplo permite separar datos, separados por espacio y los muestra ordenados alfabeticamente :
|
1 |
echo "cherry apple peach" | tr " " "\n" | sort |
apple
cherry
peach
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/bin/bash # Este script recibe por argumento un archivo o directorio y devuelve el tamaño en MB. Error(){ echo "Error. Sintaxis de uso: $0/ archivo | directorio" } if test $# -lt 1 then Error elif test -d $1 then echo "$1 es un directorio y su tamaño es el siguiente:" du -hs $1 elif test -f $1 then echo "$1 es un archivo regular y su tamaño es el siguiente:" du -hs $1 else echo "$1 no existe." fi |
|
1 2 3 4 5 6 7 8 |
#!/bin/bash # # Recorre todos los archivos del directorio actual y los muestra # for i in $(ls -C1) do echo $i done |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/bin/bash # # Comprobando terminacion de un comando # DIRECTORIO="/tmp/test" COMANDO="/bin/mkdir $DIRECTORIO" if $COMANDO then echo "$DIRECTORIO ha sido creado" else echo "$DIRECTORIO no pudo ser creado" fi |
Queremos encontrar todos los ficheros con extension .conf dentro de /etc:
|
1 |
find /etc -name '*.conf' |
Lo cierto es que este tipo de búsquedas pueden resultar demasiado grandes, y listar muchísmos resultados, para ello podemos añadir criterios y acotar los resultados. Si por ejemplo quisieramos ver los logs ubicados dentro de /usr/local cuyo tamaño supere los 100Mb:
|
1 |
find /usr/local/ -name '*log' -a -size +100M |
Y si quiseramos saber que ficheros de el directorio /var/log/ cuya extensión sea .bak no han sido modificados en 15 días:
|
1 |
find /var/log -name '*.bak' -mtime +15 |
Si no quisieramos esos ficheros, solamente tenemos que borrarlos:
|
1 |
find /var/log -name '*.bak' -mtime +15 -exec rm -f {} \; |
La verdad es que la mayor parte de expresiones de find son bastante intuitivas, -mtime, -uid, -name, -size, etc. Pero es realmente interesante comentar “-exec”, pues nos va a ser de extrema utilidad para construir comandos potentes con find.
-exec nos va a permitir aplicar ciertas acciones a los ficheros encontrados con find, como en el ejemplo anterior, en el cual eliminabamos los ficheros que coincidian con ciertos criterios. Para ello tenemos que comprender el uso de ‘{}’ y \;
‘{}’ será cada uno de los ficheros encontrados, y \; indicará donde termina la ejecución del exec.