Usuario anónimo ¿Quieres tener tu propio blog?
Crear blog gratis en OboLog

Buscando archivos en linux (find)

por banyut
jueves, 27 de marzo del 2008 a las 16:15
guardado en

La instrucción find tiene dos partes.

    find [camino...] [expresión]

Camino es la ruta o rutas a partir de la cual empezara las búsquedas, puede ser una o más de una.

    find ./PDF/ ./xarxa/ -iname "*.pdf"

Todos los pdf que hay en los directorios PDF y xarxa.

La parte de expresión empezara en el momento en que se encuentre uno de estos caracteres

    “-” “(“ “)” “,” “!”

La mejor manera de entenderlo son con ejemplos

Búsqueda de un archivo.

    find . -name “*.txt”

Nos devolverá todos los archivos con extensión txt que haya en el directorio y recursivamente en todos sus subdirectorios.

El comando find distingue entre mayúsculas y minúsculas, así la instrucción anterior no nos devolverá los ficheros que acaben en TXT. Para que no distinga entre mayúsculas y minúsculas tenemos la opción -iname.

    find . -iname “*.txt”

Podemos ejecutar ordenes que afectaran a los ficheros encontrados.

	find . -name "*.bak" -exec rm {} \;

Esta instrucción borraría todos los ficheros acabados en .bak, esto lo hace a través de la opción -exec acompañada de la instrucción a ejecutar, los corchetes {} se refieren a los ficheros que la instrucción find ha encontrado y la barra invertida \; indica el final de la instrucción.

    find . -type d -exec ls {} \;

Otro ejemplo de este uso, lista el contenido de todos los directorios y subdirectorios de la ruta actual.

    find ~/confidencial/* -type f -exec md5 {} >> MD5 \;

Nos busca todos los ficheros del directorio indicado “~/confidencial/*” y a cada uno le aplica la instrucción md5, guardando el resultado en un archivo llamado MD5.

También podemos hacer búsquedas condicionadas.

    find . ! -iname “*.pdf” ! -name “*.jpg”

Que nos devuelve todos los archivos menos los acabados en .pdf o .jpg.

    find . ! -iname “*a*” -iname “*.jpg”

Nos devolvería todos los jpg que no tengan en su nombre la letra “a”.

Find, por defecto omite los enlaces (links), si queremos que la búsqueda siga los enlaces tendremos que añadir la opción -follow.

    find . -follow -name “*empresa*”

Tenemos que tener en cuenta que podemos caer en una especie de bucle, en el que los links nos hagan volver a pasar por un mismo directorio por el que ya hemos pasado.

Una opción que nos puede ayudar a evitar eso, es -maxdepth n, la que indicamos el número máximo de niveles a los que queremos que find llegue.

    find .-follow -maxdepth 5 -name “*empresa*”

Las comparaciones numéricas se especifican como.

  • +n...............mayor que n

  • -n...............menor que n

  • n...............exactamente n

veámoslo.

ficheros a los que se ha accedido por última vez en los últimos 10 minutos.

    find . -amin -10

ficheros a los que se accedido, por última vez, hace un año exactamente.

    find . -atime 365

ficheros de tamaño superior a 1000 kb

    find . -size +1000k

ficheros vacios.

    find . -empty

    find . -empty -type f

También podemos buscar por tipos.

buscar ficheros

    find . -type f

buscar directorios

    find . -type d

buscar enlaces simbólicos.

    find . -type l

O también por los permisos que tengan concedidos o grupo al que pertenezcan.

buscar ficheros del grupo admin

    find . -group admin

ficheros del usuario pepe

    find . -user pepe

ficheros que no pertenezcan a ningún grupo o ningún usuario.

    find . -nogroup

    find . -nouser

ficheros que tengan todos los permisos concedidos para todos

    find . -perm 777

Sobre los resultados de find se pueden ejecutar ciertas acciones, esto se hace indicándolo con -exec orden. la cadena {} se reemplazará por el nombre del fichero que se esta procesando.

    find . -iname "*.html" -exec cat {} \;

Si substituimos -exec por -ok orden, tendrá el mismo efecto pero esta vez nos pedirá confirmación antes de ejecutar la orden.

    find . -iname "*.html" -ok cat {} \;

Todas las expresiones que aquí se han mostrado y muchas más que hay disponibles (consultar man find), se pueden combinar entre ellas.

se han de cumplir las dos expresiones (and implícito)

    expr1 expr2

Solo se ha de cumplir una de ellas

    expr1 -or expr2

Si no se cumple la expr1

    ! expr1

si no se cumple la expr1 y se cumple expr2

    ! expr1 expr2

Copia todas las imágenes jpg o png del directorio Imágenes al directorio dibuix.

    find ./Imágenes/* -iname "*.jpg" -or -iname "*.png" -exec cp {} tmp/dibuix \;

Ponemos en minúsculas todas las letras de los ficheros.

	find -type f -exec rename 'tr/A-Z/a-z/' "{}" \;

Por último, este comando muchas veces nos devuelve una cantidad de errores que en la mayoría de los casos nos impiden poder ver los resultados. Para evitarlos lo que se hace es redireccionarlos hacia la papelera del sistema.

Si queremos buscar un fichero en todo el ordenador, haremos lo siguiente.

    find / -iname nom_fichero

Esto nos devolvería una cantidad de avisos de permiso denegado, la forma de evitarlo es la siguiente.

    find / -iname nom_fichero 2>/dev/null

Los errores (2) los redireccionamos (>) al vacío (/dev/null)

Bueno, las posibilidades son múltiples, solo tenéis que echarle un poco de imaginación.

Restaurar el GRUB II

por banyut
miércoles, 26 de marzo del 2008 a las 18:26
guardado en

Hace poco explique como restaurar el grub. Pues de nuevo en el curro me he encontré con la necesidad de reinstalar windows, pero esta vez a demás de reinstalar windows, con la consecuente eliminación de nuestro arranque dual, cambié la conexión de los discos por lo que el disco hdc donde tenia windows y linux, paso a ser hda.

En este caso, el proceso que seguimos en el articulo anterior no funciona, tras varios intentos el sistema me arrojaba los siguientes errores.

  • /dev/hda does not have any corresponding Bios drive.

  • Could not find for /boot: Not found or not a block device.

Cuando lo vi, entendí que el grub apuntaba a hdc, esto lo tenemos en el archivo device.map que encontraremos en el directorio /boot/grub. Así que procedí a su restauración.

    grub-intall –-recheck /dev/hda

Para mi desgracia, esto solo me lo solucionó a medias, aun no me funcionaba el método de restauración.

Entonces me acorde de lo que dicen los más puristas, de que el grub tiene que estar instalado en el MASTER BOOT RECORD (MBR), y no en una partición, que es donde lo instalamos la ultima vez.

Para aclararlo un poco, el disco hda, puede contener en su interior una o más particiones (hda0, hda1, hda2, etc), pues el MBR, tendría que estar en hda (sin número) y no en una partición hdaX.

Bien pues empecemos el proceso para instalar-lo ahí. Los pasos iniciales son los mismos que los indicados en el articulo anterior Restaurar el Grub, hay que iniciar con un LiveCD y montar la partición donde tenemos instalado nuestro SO.

Hecho esto teclearemos, entraremos en el programa grub.

    sudo grub

Es importante ejecutarlo como root.

Esto iniciará el programa grub, ahora ejecutaremos la siguiente instrucción que nos localizara los discos donde lo tenemos instalado.

    find /boot/grub/stage1

Nos devolverá algo parecido a esto (puede variar según cada caso)

    (hd0, 0)

En mi caso hd0 = hda, (hd1 = hdb, etc), el número que acompaña a hd0, es la partición.

Ahora marcaremos la partición que nos ha devuelto el comando anterior (find) como raiz.

    root (hd0, 0)

Instalamos el grub en el MBR del disco, (NO EN LA PARTICIÓN).

    setup (hd0)

y por ultimo salimos del grub y reiniciamos.

    quit

    sudo reboot

Y al reiniciarse la maquina, nos encontramos con nuestro inicio dual correctamente instalado y configurado.

Papelera de reciclaje para la consola II

por banyut
lunes, 24 de marzo del 2008 a las 02:29
guardado en

Hace días vimos como poder crear la papelera de reciclaje en la consola, en esta ocasión os muestro otra forma de conseguirlo sin necesidad de instalar ninguna librería.

    alias rm="mv --target-directory=${HOME}/.Trash/"

Lo que hace es crear un alias del comando rm, sustituyéndolo por mv (mover).

Aportación de slap, en los foros de ubuntu.

Papelera de reciclaje para la consola

por banyut
sábado, 22 de marzo del 2008 a las 16:36
guardado en

El entorno gráfico nos ofrece una serie de ventajas que no están disponibles en la consola, una de ellas es la papelera de reciclaje.

El borrado accidental de archivos en modo consola nos puede ocasionar un grave dolor de cabeza, algo trivial si esto nos hubiera pasado en el entorno gráfico.

La solución que aquí se presenta es habilitar la papelera de reciclaje cuando trabajemos en la consola.

Instalaremos las librerías necesarias.

    sudo aptiutde install libtrash

Hemos de cargarla en memoria, para ello editaremos el fichero .bashrc

    vim ~/.bashrc

y añadiremos al final de el lo siguiente.

    export LD_PRELOAD=/usr/lib/libtrash/libtrash.so.2.4

Los dos últimos pasos lo podríamos haber hecho en un solo paso de esta forma.

echo "export LD_PRELOAD=/usr/lib/libtrash/libtrash.so.2.4" >> ~/.bashrc

Con esto ya tenemos nuestra papelera para la consola, lo que haremos ahora es que sea la misma tanto para consola como para entorno gráfico.

Editaremos o crearemos el fichero .libtrash

    vim ~/.libtrash

y añadiremos al final lo siguiente

    TRASH_CAN = .Trash

Igual que en el caso anterior esto mismo lo podemos hacer con una única instrucción

    echo "TRASH_CAN = .Trash" > ~/.libtrash

fácil no!!!

--

La inteligencia me persigue pero yo soy más rápido.

Descubrinedo la consola.

por banyut
sábado, 22 de marzo del 2008 a las 15:43
guardado en

Hoy mostraremos que nos ofrece nuestra querida consola, es un tema muy básico pero que puede ayudar a los recién iniciados.

Para acceder a ella entre otras tenemos dos vias básicas.

    en menu Aplicaciones->Accesorios->Terminal

    o <Alt>F2 ->introducir gnome-terminal

Lo primero que haremos será tunearla un poquito, para que nos identifiquemos mejor con ella.

    menú Editar->Perfiles

Y pulsamos sobre nuevo.

    Nombre del perfil: Mi_perfil

    Basado en: Predeterminado

Pulsamos sobre crear y se nos abrirá una nueva ventana, en la que podremos configurar nuestra consola como más nos guste. En las pestañas de Colores y la de Efectos, podremos configurar la apariencia de la misma. con un poco de imaginación el resultado es realmente espectacular (transparencias, bitmaps, etc).

Al finalizar , volveremos a la pantalla de perfiles, donde tendremos que indicar que perfil queremos utilizar por defecto.

Una vez tengamos la consola a nuestro gusto, veremos unos cuantos atajos que tenemos a nuestra disposición y que nos harán más fácil nuestro trabajo con ella.

    <shift><ctrl>n ................ Abre una nueva ventana

    <shift><ctrl>q ................ Cierra la ventana

    <ctrl>+........................ Zoom sobre la ventana (no tecl. núm)

    <ctrl>-........................ Zoom sobre la ventana

    <ctrl>0........................ restaura el tamaño de la ventana

    F11............................ Pantalla completa

También podemos trabajar con los famosos tabs.

    <shift><ctrl>t................. Nuevo tab

    <shift><ctrl>w................. Eliminar tab

    <ctrl>Page_up.................. Siguiente tab

    <ctrl>Page_down................ tab Anterior

    <shift><ctrl>Page_up........... Desplazar tab

    <shift><ctrl>Page_down......... Desplazar tab

    <alt>1..9 ..................... Ir a tab x

Para desplazarnos por la consola tenemos.

    <shift>Page_up ................ Desplaza el contenido del terminal

    <shift>Page_down............... Desplaza el contenido del terminal

Se nos permite trabajar con el ratón.

  • Podemos seleccionar una palabra haciendo doble clic sobre ella.

  • Seleccionar una linea haciendo tres clics sobre la línea.

  • Seleccionar una parte pulsando y arrastrando el ratón.

  • Permite arrastrar y soltar dentro de la consola.

  • abrir un link posicionando y pulsando el botón derecho del raton.

Como alternativa no podemos omitir que también disponemos el konsole que podemos instalar desde añadir y quitar programas o desde consola mediante aptitude. Konsole, es más atractivo que nuestra consola original y es tan o más configurable que esta.

Asignar un label al disco duro

por banyut
martes, 18 de marzo del 2008 a las 18:22
guardado en

Hace pocos días vimos como renombrar las particiones de nuestro ubuntu (http://banyut.obolog.com/archivos/rename_disk), como complemento a este articulo y para que los más puristas no se quejen, veremos otra forma de hacer lo mismo, mucho más corta, aunque menos instructiva que la anterior.

Tenemos la instrucción e2label que nos permite cambiar el label de los discos, esta etiqueta, será la que utilizará nuestro sistema a la hora de mostrarlo en el escritorio o montarlo.

Esta instrucción solo es válida para sistemas ext2 y ext3, y su uso es el siguiente.

Nos muestra el label del dispositio xxxx

e2label /dev/xxxx

Asigna al dispositivo xxxx el label Magatzem

e2label /dev/xxxx Magatzem

Solo queda decir que la etiqueta ha de ser como máximo de 16 caracteres, en caso de poner más estos serán truncados.

---

Solo hay 10 clases de personas, las que saben binario y las que no.

Instalación y configuración de Eclipse.

por banyut
lunes, 17 de marzo del 2008 a las 19:56
guardado en

Mostraremos como instalar y configurar la plataforma de código abierto “Eclipse”, una entorno integrado de desarrollo (IDE) abierto y extensible. Implementado mayormente en Java y que corre sobre la maquina virtual.

Aunque es el IDE de java por excelencia, gracias a su expansibilidad (plug-ins), se puede adaptar a cualquier tipo de lenguaje.

Empezaremos bajando la documentación (Java SE 6 Documentation) de la pàgina de Sun.

http://java.sun.com/javase/downloads/index.jsp

descargarlo en /tmp

Instalaremos la máquina virtual que también podremos bajar de la página anterior, de todas maneras esta vez utilizaremos los repositorios.

sudo aptitude install sun-java6-bin sun-java6-demo sun-java6-doc sun-java6-fonts sun-java6-jdk sun-java6-jre sun-java6-plugin sun-java6-source

Instalaremos eclipse.

sudo aptitude install eclipse

Conectaremos el IDE con la maquina virtual para ello haremos lo siguiente.

sudo vim /usr/bin/eclipse

y al inicio del fichero añadiremos (ojo después de #!/bin/bash)

export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.03

export PATH=$JAVA_HOME/bin:$PATH

En este punto, hay que tener cuidado, me he encontrado que según la distro que tengamos la ruta donde se instala puede cambiar (/usr/java, /usr/share/lib, /usr/bin, etc), así que no vendrá de más que nos aseguremos antes, en mi caso, Gutsy, ese es el directorio correcto.

Cuando trabajamos con eclipse, nos muestra unas ventanas de ayuda cada vez que pulsamos F2 sobre una palabra seleccionada (o mantenemos el cursor sobre una palabra), esta información la consigue de la web de sun. Esta información no es otra que la que ya hemos bajado y guardado en /tmp, en nuestro primer paso, así que lo que haremos sera decir a eclipse que la documentación está en nuestro equipo.

Empezaremos por ponerla en un sitio más adecuado.

sudo cp /tmp/jdk-6-doc.zip /usr/lib/jvm/java-6-sun-1.6.0.03/

Nuevamente recordar que hay que asegurarse de la ruta, entraremos en eclipse, bien sea desde la consola o a traves del menu Aplicaciones->Programción.

  • En el menu Windows ->preferences.

    • click sobre INSTALLED JREs

    • seleccionamos en la ventana derecha java-6-sun-1.6.........

    • pulsamos sobre editar. (se nos abrira una nueva ventana)

    • en la lista seleccionaremos /usr/lib/.............../lib/rt.jar

    • pulsamos sobre el boton Javadoc Location

      • marcamos javadoc in archive

      • en Archive path: /usr/lib/jvm/java-6-sun-1.6.0.03/jdk-6-doc.zip

      • en Path within archive: docs/api

  • Aceptamos todo pulsando sobre OK

     

Y ya tenemos nuestro eclipse perfectamente instalado.

Por cierto tenéis la documentación disponible en

/usr/lib/jvm/java-6-sun-1.6.0.03/ docs/index.html

--- 

Si mantienes la calma cuando todos pierden la cabeza, sin duda es que no has entendido el problema.

Renombrar las particiones de nuestro linux.

por banyut
domingo, 16 de marzo del 2008 a las 03:46
guardado en

Cuando instalamos nuestro sistema operativo, este nos monta los discos automáticamente dándole por defecto el nombre de la partición (sda1, sdb6, hd0, etc). Si solo tienes un o dos particiones no hay problema, pero cuando estas aumentan suele resultar algo incomodo el distinguirlas, mi memoria ya no es lo que era.

Lo que haremos será substituir esta etiqueta por un nombre más descriptivo. Para entendernos, en vez de que nos muestre sda2, haremos que nos enseñe por ejemplo Multimedia.

Es recomendable hacer este cambio, y no es solo por estética, por poneros un ejemplo, el directorio /home lo tengo en una partición independiente (sdb6), y esta partición está apuntada por diversos links, repartidos por todo el sistema.

Si por el motivo que fuese mi /home tuviera que estar en otro disco, por ejemplo en sdb3, tendría que buscar una por una todas las referencias a sdb6 y actualizarlas, uff!!!, feo y pesado trabajo. Cosa que no nos pasara si hacemos lo que aquí se propone.

Imaginemos que queremos que nuestra partición sdb5 se llame Multimedia.

  • Hacer una copia de seguridad del fstab

    sudo cp /etc/fstab /etc/fstab.old

  • averiguar el UUID de la particion

    sudo vol_id /dev/sdb5

    Os devolverá algo parecido a esto (Nos interesa el número de la 4 fila).

    ID_FS_USAGE=filesystem

ID_FS_TYPE=ext3

ID_FS_VERSION=1.0

ID_FS_UUID=ae4a67d1-dba4-407b-8363-da71002a2603

ID_FS_UUID_ENC=ae4a67d1-dba4-407b-8363-da71002a2603

ID_FS_LABEL=

ID_FS_LABEL_ENC=

ID_FS_LABEL_SAFE=

  • Crearemos el directorio donde se montará

    sudo /media/Multimedia

  • Editamos el fichero fstab (yo uso el vim, si os resulta mas fácil usar el gedit)

    sudo vim /etc/fstab

  • Es mas que probable que nuestra partición ya exista en el fichero, así que la buscaremos y la comentaremos poniéndole el símbolo # al inicio de la fila.

    # UUID=ae4a67d1-dba4-407b-8363-da71002a2603 /media/sdb5 ext3 defaults 0 2

  • Añadiremos esta linea, claro esta substituyendo el UUID por el de cada uno.

    UUID=ae4a67d1-dba4-407b-8363-da71002a2603 /media/Multimedia ext3 defaults 0 2

  • Guardamos y reiniciamos el equipo.

Los más avispados os habréis dado cuenta que podíamos haber substituido sdb5 por Multimedia en la fila que ya existía, pues si, se puede hacer y no hay ningún problema, como en todos mis manuales, normalmente cojo el camino que más información proporciona, lo importante es aprender.

Otra cosa, yo he dado por hecho que el sistema era ext3, no copiéis como papagayos y poner el que os corresponda. Que como sabéis que sistema tenéis?, pues bueno, si os fijáis esta información nos la ha dado la instrucción vol_id.

---

Si mantienes la calma cuando todos pierden la cabeza, sin duda es que no has captado el problema.

Sobre el blog

yo soy porque nosostros somos

Una de las cosas que eche de menos cuando empecé a usar linux, fue como ponerlo a punto, si bien la instalación me resultó sencilla, no fue así con su uso posterior y puesta a punto.

Tenia claro porque me había pasado a linux, por ideologia. Yo no puedo decir nada malo de windows, lo he acompañado prácticamente desde su nacimiento, instalando y probado todas sus versiones, y ninguna de ellas me ha dado más problemas de los que me da ubuntu.

He de reconocer que si solo trabajamos con consola no hay comparación, linux supera en todos los aspectos a windows, ahora en el momento en que entramos en modo gráfico, los dos fallan por igual.

Uno de los factores clave para que la peregrinación hacia ubuntu sea lo menos traumática posible, es mentalizarnos que si bien haremos lo mismo, no con los mismos programas. Aunque se pueda, no tiene sentido, quizás con alguna excepción, pasarme a linux y querer usar internet explorer, word, excel, etc.

Todos estos programas tienen sus homólogos en ubuntu, que podremos instalar en la mayoría de los casos de manera gratuita (yo solo busco soluciones libres y gratuitas) y sin perder ninguna funcionalidad. Este es el primer problema de cara al recién llegado, conocer que programas ha de usar en cada caso.

Ubuntu 9.04 - on desktops, netbooks, servers and in the cloud

Ver ficha del blog en OboLog

Login

Comentarios

Restaurar el audio en UBUNTU (Alejandro)
Al 50% del compilador me arroja el error de nuevo alguien sabe xq? o tendra alguna solucion??? ......(15 nov)
Importar en openoffice write y calc (R. A.)
Sigo sin resolver un problemita: ¿Puedo o no puedo importar una tabla en Write a Calc?  Microsoft ......(12 nov)
Restaurar el audio en UBUNTU (skater)
muchas gracias! me ayudaste aun no funcionan mis auriculares pero me funciona el sonido con mis ......(12 nov)
Traducción offline con STARDIC (mserra)
Muchísimas gracias, lo echaba de menos....(07 nov)
Python: Variables y asignaciones. (fernando)
Hola, ¿No hay un comando en el interprete de python que muestre las variables que se han definido a ......(06 nov)

Más comentados

Restaurar el audio en UBUNTU (24)
Hay veces que sin saber que es lo que hacemos exactamente, nos cargamos el audio del sistema, no se ...
Convertir Ubuntu Hardy en un Mac OSX Leopard (21)
Para transformar la versión Intrepid Ibex, tenes este otro link. He encontrado un Post en el que de ...
Convertir Ubuntu Intrepid en un Mac (Mac4Lin) (17)
En su día ya vimos un manual de como convertir Hardy en un mac, esta vez lo haremos para Intrepid, ...
Python: Las Listas (16)
Son la esencia de python, las podríamos definir como una secuencia ordenada de elementos encerrados ...
Copias de seguridad en UBUNTU (crontab, rsync, dd) (13)
Hoy abordaremos el tema de las copias de seguridad. El objetivo es montar dos tipos de copias, por ...

Suscripción

Suscríbete al Feed RSS XML

También puedes suscribirte directamente con alguno de los siguientes enlaces:

  • Suscríbete en Bloglines
  • Suscríbete en Google