Skip to content

Instantly share code, notes, and snippets.

@artero
Last active October 11, 2015 10:38
Show Gist options
  • Save artero/3846440 to your computer and use it in GitHub Desktop.
Save artero/3846440 to your computer and use it in GitHub Desktop.
Unix como IDE de PHP

find [Buscar archivos]

El comando hace una búsqueda recursiva de archivos el comando tiene la siguiente synopsis:

Todos los argumentos son obcionales, simplificando:

find [path] [atributos] [nombre]

Veamos unos ejemplos sencillos de la utilización del comando

Buscar el nombre de un archivo en el directorio actual.

Para hacerlo usaremos como path . (directorio actual) atributo -name y como nombre el nombre del archivo a buscar.

find . -name index.html

De valor de salida nos presentará el path de todos los archivos con el nombre index.html en el directorio actual y todos los directorios que contiene.

Si queremos buscar en todo el ordenador

find / -name index.html

Mostrar todos los archivos en el directorio de forma recursiva

Se utiliza el atributo -find

find . -find

Nos listará todos los archivos del directorio

Buscar todos los archivos por tipo

Usando el atributo -type podemos decir que nos busque solo archivos (f), directorios (d), link simbólicos (l), etc.

find . -type d

Nos buscará los directorios que se encuentran dentro del directorio actual

Busquedas de archivos modificados

Podemos encontrar los archivos modificados en los los últimos minutos usando -mmin

find / -mmin 10

Nos mostrará los cambions en los últimos 10 minutos en todo el ordenador, en el caso que quisiesemos buscar los archivos que se modificaron hace más de 10 minutos

find . -mmin +10

Para buscar los archivos que se modificaron en los últimos 5 dias, podemos usar el comando -mtime

find . -mtime 5     # Busca los archivos modificados en los últimos 5 dias
find . -mtime +5    # Busca los archivos modificados hace más de 5 dias

Hay muchos más atributos, esto es solo un resumen de los más útiles. Todos estos atributos se pueden combinar para filtrar los resultados de forma más precisa, por ejemplo:

find . -type f -name \*Test\* 

Busca todos los archivos que contienen Test en el nombre, en el directorio actual.

Combinaciones útiles

find . -name 'dia_*' | xargs -I '{}' mv {} ~/diario

[...]

Abrir archivos desde el terminal

Desde sublime, si el comando que hemos definido se es subl:

subl directorio/subsirectorio/archico.php:20

Desde vim

vim directorio/subsirectorio/archico.php +20
``

Pasar salida estandar a entada de vim

ls | vi -


y con sublime

ls | subl -



## Usar ncftp para sincronizar archivos
find ~/web/jrogue -type f -mmin -1 -exec sh -c 'ncftpput -R -u user -p pas ftp.juanartero.com /web/jrogue/ {}' \;

Cuando abrimos el terminal mac os x o Ubuntu, accedemos a un programa llamdo shell. Shell es la forma con la que nos comunicamos con unix, es la interface con la que nos comunicamos con Unix. Hay varios tipos de shell, cada uno con sus propias caracteristicas pero tanto en mac como en linux utilizamos por defecto un shell llamado bash.

En este artículo se utilizarán el shell bash, aunque tengo pensado hacer una introducción a zsh, una modificación de bash que permite un autocompletado mejor y un mayor grado de personalización.

Manos a la obra

En Unix podemos encontrarnos principalmente con 3 cosas: Archivos, direcotios y comandos (o programas).

Si escribimos en el terminal

''' ls -a -G ~/ '''

Veremos los archivos y directorios que tenemos en el direcorio del usuario. Lo que hemos hecho ha sido, ejecutar el comando ls (listar directorio) con las opciones -a (que nos muestre archivos y directorios ocultos) -G (Que coloreé la salida) y le hemos dicho que la entrada será ~/ (El directorio del usuario).

Los comandos en unix tienen una estructura parecia a esta:

[comando] [opcionses] [entrada]

Si queremos saber como se estructura un comando en concreto o que opciones tiene, podemos utilizar el comando man, por ejemplo:

''' man ls '''

Nos mostrará la información de como funciona el comando y que opciones tiene. Para movernos por esta pantalla podemos desplazarnos pulsado cualquier tecla, o usar j para subir k para bajar y q para salir.

Los archivos y directorio en unix pueden estar visibles, se muestran siemre que ejecutamos ls, u ocultos que no se muestran solo si usamos el ls -a.

cd - Movernos por el sistema

El comando cd nos permite movernos por los directorio, su estructura es:

cd [opciones] [entrada]

La entrada será la ruta a la que queremos dirigirnos [...]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment