Bueno, os dejo unos comandos muy útiles que uso para listar mis fotografías, que cada vez son más, y encontrar la que busco.
La búsqueda es más bonita en Nautilus, pero para crear listados de fotografías, estos comandos son rapidisimos y muy útiles.
Lo primero que tenemos que hacer es abrir una terminal.
En ubuntu es así:
Aplicaciones -> Accesorios > Terminal
Nos situará en nuestra home
usuario@usuario:/home/usuario$
Una vez aquí, navegamos hasta el directorio donde tenemos las fotos. En este caso yo las tengo en /home/usuario/Fotos, asi que escribo
usuario@usuario:/home/usuario$ cd Fotos
y ya estoy en el directorio Fotos.
usuario@usuario:/home/usuario/Fotos$
Ahora tengo varias opciones:
Opción 1: Quiero listar todos los ficheros del directorio:
usuario@usuario:/home/usuario/Fotos$ ls -lhgo
Con este comando estamos pidiendo un listado largo (-l) con el tamaño de los ficheros en formato entendible (h) sin mostrar el grupo (g) al que pertenece el fichero ni el propietario (o) por que no me interesan esos datos.
Nos devuelve esto:
total 75K
-rwxrwxrwx 1 35K 2009-08-14 13:34 Ichneumonidae 1.jpg
-rwxrwxrwx 1 36K 2009-08-14 13:35 Ichneumonidae.jpg
drwxrwxrwx 1 4,0K 2009-08-14 13:22 tal0
Total 75K (=75KBytes) que es lo que ocupa todo lo que hay en el directorio (sin contar los subdirectorios). Tenemos la primera columna que nos dice los permisos (rwx quiere decir lectura,escritura y ejecución – read, write, execution -) y el tipo de fichero. “-” es un fichero normal y la “d” es un directorio. La segunda columna indica el número de enlaces duros (1), lo siguiente es el peso de la imagen (35K=35KBytes), lo siguiente es la fecha de la última modificación, con la hora, y por último el nombre del fichero o directorio.
Opción 1.1: Quiero listar todos los ficheros del directorio y de los subdirectorios:
usuario@usuario:/home/usuario/Fotos$ ls -lhgoR
Nos devuelve
.:
total 536K
-rwxrwxrwx 1 35K 2009-08-14 13:34 Ichneumonidae 1.jpg
-rwxrwxrwx 1 36K 2009-08-14 13:35 Ichneumonidae.jpg
drwxrwxrwx 1 4,0K 2009-08-14 13:22 tal0
./tal0:
total 7M
-rwxrwxrwx 1 3,7M 2009-08-10 09:43 IMG_0506.JPG
-rwxrwxrwx 1 3,3M 2009-08-10 09:43 IMG_0507.JPG
Nos devuelve el contenido del directorio y de sus subdirectorios.
Opción 2: Quiero listar los ficheros jpg (gif, png, bmp…) del directorio:
usuario@usuario:/home/usuario/Fotos$ ls -lhgo | grep jpg
Nos devolvería:
-rwxrwxrwx 1 35K 2009-08-14 13:34 Ichneumonidae 1.jpg
-rwxrwxrwx 1 36K 2009-08-14 13:35 Ichneumonidae.jpg
Nota: si queremos que la búsqueda sea indiferente a mayúsculas y minúsculas, es decir, que busque jpg y JPG, ponemos esto:
usuario@usuario:/home/usuario/Fotos$ ls -lhgo | grep -i jpg
Para obtener en los resultados solo los nombres de los ficheros, basta con hacer un ls | grep jpg, quitando toda la parte de (-lhgo).
Opción 2.1: Quiero listar los ficheros jpg del directorio y sus subdirectorios:
usuario@usuario:/home/usuario/Fotos$ ls -lhgoR | grep jpg
Nos devolvería:
-rwxrwxrwx 1 35K 2009-08-14 13:34 Ichneumonidae 1.jpg
-rwxrwxrwx 1 36K 2009-08-14 13:35 Ichneumonidae.jpg
-rwxrwxrwx 1 3,7M 2009-08-10 09:43 IMG_0506.JPG
-rwxrwxrwx 1 3,3M 2009-08-10 09:43 IMG_0507.JPG
Nota: si queremos que la búsqueda sea indiferente a mayúsculas y minúsculas, es decir, que busque jpg y JPG, ponemos esto:
usuario@usuario:/home/usuario/Fotos$ ls -lhgoR | grep -i jpg
Opción 3: Si queremos guardar los resultados en un fichero, podemos copiar y pegar desde la terminal o escribir al final del comado > fichero.txt para que guarde los resultados en un fichero.
Ejemplo:
usuario@usuario:/home/usuario/Fotos$ ls -lhgoR | grep -i jpg > prueba.txt
Me guardará los resultados del comando en /home/usuario/Fotos/prueba.txt
usuario@usuario:/home/usuario/Fotos$ ls -lhgoR | grep -i jpg > /home/usuario/Escritorio/prueba.txt
Me guardará los resultados del comando en /home/usuario/Escritorio/prueba.txt
Nota:
El ejemplo está hecho con jpg, pero podemos usar lo que queramos buscar (perro, gato, .jp, .gif, loquesea.png…cualquier cosas que queramos y este contenida en el nombre del fichero).
Para retroceder de directorio basta con escribir “cd ..” y accederemos al directorio inmediatamente superior.
Para no tener que escribir las rutas completas, si escribimos la primera letra del directorio y damos al tabulador, automáticamente se escribirá la palabra entera (si sólo hay un directorio con ese nombre) o si pulsamos 2 veces nos saldrán las opciones disponibles, entonces escribimos la siguiente letra y pulsamos tabulador.
Bueno, esto se puede modificar a gusto de cada uno, mirando el manual de grep (man grep o grep –help) y utilizando find en vez de grep.
Algunos ejemplos:
* Crear un listado de todos los ficheros – canciones, música – mp3 de una carpeta:
usuario@usuario:/home/usuario/música$ ls -lhgo | grep mp3 > lista-musica-mp3.txt
* Crear un listado de todos los ficheros – videos, películas – avi de una carpeta:
usuario@usuario:/home/usuario/películas$ ls -lhgo | grep avi > lista-peliculas-avi.txt
Podemos cambiar avi por mpeg, mpg, mp4, rmvb, flv…etc.
* Crear un listado de todos los ficheros – fotografías – jpg de una carpeta:
usuario@usuario:/home/usuario/fotos$ ls -lhgo | grep jpg > lista-fotos-jpg.txt
Podemos cambiar jpg por gif, bmp, png…etc.
Unos comandos muy sencillos que nos facilitarán la vida.