la mayoria de la gente que tiene que ver con los comandos de UNIX expuestos en este
capitulo no estarian de acuerdo con este titulo. \
manera completamente diferente. Nunca recordare todas esas opciones, >y dice que son divertidos?"
Si, Vd. ha visto un ejemplo del humor de los hackers1. Ademas, mirelo desde el lado positivo: no
hay comandos del MS-DOS equivalentes a estos. Si los necesita, tiene que adquirirlos por separado,
y nunca sabria como seria su interfaz. Aqui hay un util |y economico| valor a~nadido, <
El conjunto de comandos explicados en este capitulo cubre find, que permite al usuario buscar
grupos de cheros especicados dentro del arbol de directorios; tar, util para empaquetar algun
archivo para ser enviado o solo salvado; dd, el multicopista de bajo nivel; y sort, el cual . . . si, clasica
cheros. Una ultima condicion: estos comandos no estan bajo ningun concepto estandarizados, y si
bien podriamos encontrar un nucleo de opciones comunes en todos los sistemas IX, las versiones (de
GNU) que se explican mas abajo, y Vd. puede encontrar en su sistema Linux, usualmente poseen
muchas mas capacidades. Por tanto, si Vd. planea usar otros sistemas operativos UNIX, por favor,
no olvide comprobar la pagina del manual del sistema en cuestion para aprender las quizas no tan
pequeñas diferencias.
Entre los diversos comandos vistos hasta aqui, habia algunos que permitian al usuario bajar recursivamente
el arbol del directorio para llevar a cabo alguna accion: los ejemplos canonicos son \ls -R"
y \rm -R". Bien. find es el comando recursivo. Cada vez que piense \Bueno, tengo que hacer
tal cosa con todos esos cheros en mi propia particion", haria mejor en pensar en usar find. En cierto sentido el hecho que find encuentre cheros es solo un efecto secundario: su ocupacion real
es evaluar.
La estructura basica del comando es como sigue:
find ruta [. . . ] expresion [. . . ]
Esto es al menos en la version de GNU; otras versiones no permiten especicar mas que una ruta,
y ademas es muy infrecuente la necesidad de hacer tal cosa. La explicacion burda de la sintaxis del
comando es bastante simple: Vd. indica desde donde quiere empezar la busqueda (la parte de la
ruta; con el find de GNU puede omitir esto y sera tomado por defecto el directorio en uso .), y que
clase de busqueda quiere realizar (la parte de la expresion).
El comportamiento estandar del comando es un poco enga~noso, por lo que mas vale tenerlo en
cuenta. Supongamos que en su directorio principal de usuario existe un directorio llamado basura,
el cual contiene un chero foobar. Vd. felizmente escribe \find . -name foobar"(lo que como
puede adivinar busca cheros llamados foobar), y obtiene . . . nada mas que otra vez el prompt. El
problema reside en el hecho de que find es por defecto un comando silencioso; solo devuelve 0 si la
busqueda fue completada (con o sin haber encontrado algo) o un valor distinto de cero si hubiera
habido algun problema. Esto no ocurre con la version que Vd. puede encontrar en el Linux, pero
de todas maneras es util recordarlo.
OPCIONES
Aqui esta la lista de todas las opciones conocidas de la version GNU de find. Recuerde que siempre
devuelven verdadero.
-daystart mide el tiempo transcurrido no desde hace 24 horas si no desde la ultima medianoche.
Un autentico hacker probablemente no entendera la utilidad de tal opcion, pero un trabajador
que programa de ocho a cinco si lo apreciara.
-depth procesa el contenido de cada directorio antes que el directorio en si. A decir verdad, no
conozco muchos usos de esto, aparte de una emulacion del comando \rm -F" (por supuesto
Vd. no puede borrar un directorio antes de que todos sus cheros sean borrados tambien . . .
-follow respeta (es decir, sigue) los enlaces simbolicos. Implica la opcion \-noleaf"; ver abajo.
-noleaf desactiva una optimizacion que dice \Un directorio contiene dos subdirectorios menos que
su cuenta de enlaces rigidos". Si el mundo fuera perfecto, todos los directorios serian referenciados
por cada uno de sus subdirectorios (a causa de la opcion ..), como . dentro de si
mismo, y por su nombre \real" desde su directorio padre.
Esto signica que cada directorio debe ser referenciado al menos dos veces (una por si mismo,
otra por su directorio padre) y cualquier referencia adicional es por subdirectorios. En la
practica, sin embargo, los enlaces simbolicos y los sistemas de chero distribuidos3 pueden
alterar esto. Esta opcion hace que find funcione ligeramente mas despacio, pero debe dar los
resultados esperados.
-maxdepth niveles, -mindepth niveles, donde niveles es un entero no negativo. Indican respectivamente
que a lo sumo o que al menos niveles de directorios deberian explorarse. Un par de
ejemplos son obligados: \-maxdepth 0" indica que el comando deberia realizarse solo sobre
los argumentos de la linea de comandos, es decir, sin bajar recursivamente el arbol de directorios;
\-mindepth " inhibe el procesamiento del comando para los argumentos en la linea de
comandos, pero se consideran todos los otros cheros debajo.
-version imprime la version en uso del programa.
-xdev, el cual es un nombre engañoso, instruye a find para no cruzarse de dispositivo4, es decir,
no cambiarse de sistema de cheros. Es muy util cuando se tiene que buscar algo en el
sistema de cheros raiz; en muchas maquinas es una particion algo pequeña, pero, sino,
son promisorios.


No hay comentarios:
Publicar un comentario