Búsqueda de comando de búsqueda de archivos de Linux, xargs detallados

  

1.find porque f i n d tiene características potentes, tiene muchas opciones, la mayoría de las cuales vale la pena dedicar tiempo. Incluso si el sistema contiene un sistema de archivos de red (NFS), el comando f i n d también es válido en el sistema de archivos, solo que tiene los permisos adecuados. Cuando se ejecuta un comando de búsqueda que consume muchos recursos, muchas personas tienden a ponerlo en segundo plano, ya que puede tomar mucho tiempo atravesar un sistema de archivos de gran tamaño (aquí se refiere a un sistema de archivos de más de 30 Gbytes) ).

La forma general del comando F ind es: buscar nombre de ruta -opciones [-print -exec -ok ...]

Veamos los parámetros del comando:

ruta de acceso: la ruta del directorio en la que se encuentra el comando de búsqueda. Por ejemplo, use. Para indicar el directorio actual y /para representar el directorio raíz del sistema. El comando -print: find envía el archivo correspondiente a la salida estándar. El comando -exec: find ejecuta el comando s h e l l dado por este parámetro para el archivo correspondiente. El comando correspondiente tiene el formato 'comando' {} \\;, tenga en cuenta los espacios entre {} y \\;. -ok: Igual que - e x e c, excepto que el comando s h e l l dado por este parámetro se ejecuta en un modo más seguro.Antes de que se ejecute cada comando, se da un mensaje para que el usuario determine si ejecutar o no.

buscar comando nombre-opción: busca archivos por nombre de archivo. -perm: encontrar archivos por permisos de archivos. -prune: use esta opción para hacer que el comando f i n d no se encuentre en el directorio actualmente especificado. Si se usa la opción -depth al mismo tiempo, el comando f i n d ignorará -prune. -usuario: encuentra archivos por propietario de archivo. -grupo: busca archivos según el grupo al que pertenece el archivo. -mtime -n + n: busca archivos de acuerdo con la hora en que se cambió el archivo. -n indica que el tiempo de cambio del archivo es dentro de n días, y + n indica que la hora de cambio del archivo es ahora hace n días. El comando F i n d también tiene las opciones - a t i m e y - c t i m e, pero todas tienen la opción -m t i m e. -nogrupo: encuentra un archivo sin grupo válido, es decir, el grupo al que pertenece el archivo no existe en /e t c /g r o u p s. -nouser: busca un archivo sin un propietario válido, es decir, el propietario del archivo no existe en /e t c /p a s s w d. -newer file1! file2: busca archivos que son más nuevos que el archivo f i l e 1 pero más antiguos que el archivo f i l e 2. -type Busca un archivo de cierto tipo, como:

b - bloque de archivos de dispositivo. d - el directorio. c - el archivo del dispositivo de caracteres. p - el archivo de tubería. l - archivo de enlace simbólico. f - archivo normal.

-size n: [c] Encuentra archivos con una longitud de archivo de n bloques, con c que indica que la longitud del archivo está en bytes. -depth: cuando busque un archivo, primero encuentre el archivo en el directorio actual y luego búsquelo en su subdirectorio. -fstype: busca archivos ubicados en un sistema de archivos de un tipo. Estos tipos de sistemas de archivos generalmente se encuentran en el archivo de configuración /e t c /f s t a b, que contiene información sobre el sistema de archivos en este sistema.

-mount: no cruce el sistema de archivos o apunte al buscar archivos. -follow: si el comando f i n d encuentra un archivo de enlace simbólico, rastrea al archivo al que apunta el enlace. -cpio: use el comando c p o o en los archivos correspondientes para hacer una copia de seguridad de estos archivos en el dispositivo de cinta.

Además, las siguientes tres diferencias: -amin n

Encuentra los últimos N minutos de archivos de acceso en el sistema

-atiempo n

Cómo encontrar el sistema El último archivo de acceso n * 24 horas

-cmin n

Encuentre el archivo en los últimos N minutos del estado del archivo modificado en el sistema

-ctime n

Busque el archivo cuyas últimas n * 24 horas cambió el estado del archivo en el sistema

-mmin n

Encuentre el archivo en los últimos N minutos de los datos de archivo modificados en el sistema

-mtime n

Encuentre las últimas n * 24 horas de datos de archivos modificados en el sistema

Ignorar un directorio

Si desea ignorar un directorio al buscar archivos, porque sabe No hay ningún archivo en el directorio que está buscando, entonces puede usar la opción -prune para indicar qué directorios ignorar. Tenga cuidado al usar la opción -p r u n e, ya que si usa la opción -d e p t h al mismo tiempo, el comando f i n d ignorará la opción - p r u n e.

Si desea buscar archivos en el directorio /apps, pero no quiere buscar en el directorio /apps /bin, puede usar:

Código: $ find /apps -path " /apps /Bin " -prune -o -print

Ejecutar comandos de shell usando exec o ok Cuando use find, simplemente escriba la operación deseada en un archivo, puede usar exec para hacer coincidir la búsqueda de encontrar, muy conveniente

(En algunos sistemas operativos , solo la opción -exec puede ejecutar comandos como ls o ls -l). La mayoría de los usuarios usan esta opción para encontrar archivos antiguos y eliminarlos. Se recomienda usar el comando l s para ver los archivos que desea eliminar antes de ejecutar el comando r m para eliminar archivos.

e x e c opción es seguida por el comando o script que se ejecutará, luego un par {}, un espacio y una \\, y finalmente un punto y coma.

Para utilizar la opción e x e c, debe utilizar la opción p r i n t al mismo tiempo. Si verifica el comando f i n d, encontrará que el comando solo genera la ruta relativa y el nombre del archivo de la ruta actual.

Por ejemplo: para listar los archivos coincidentes con el comando ls -l, puede poner el comando ls -l en la opción - exec del comando find # find. -type f -exec ls -l {} \\; - rw-r - r-- 1 raíz raíz 34928 2003-02-25 ./conf/httpd.conf-rw-r--r-- 1 raíz raíz 12959 2003-02-25 ./conf/magic -rw-r - r-- 1 root root 180 2003-02-25 ./conf.d/README

En el ejemplo anterior, el comando de búsqueda coincide con todos los archivos normales en el directorio actual, y - Use el comando ls -l en la opción exec para listarlos.

Encuentre archivos en el directorio /logs que cambiaron su tiempo antes del 5 y bórrelos: $ encuentre registros -tipo f -mtime +5 -exec rm {} \\;

Recuerde, Antes de eliminar un archivo de cualquier forma en el shell, debe verificar primero el archivo correspondiente, ¡tenga cuidado! Cuando use comandos como m v o r m, puede usar el modo seguro de la opción - e x e c. Le avisará antes de trabajar en cada archivo coincidente.

En el siguiente ejemplo, el comando f i n d encuentra todos los archivos cuyos nombres terminan. L O G y los cambios durante 5 días en el directorio actual, y los elimina, excepto que se les solicita antes de eliminarlos. $ encontrar. -nombre " *. conf " -mtime +5 -ok rm {} \\; < rm ... ./conf/httpd.conf >? n

Presione y para eliminar el archivo , presiona n para no borrar.

Se puede usar cualquier forma de comando en la opción - e x e c.

En el siguiente ejemplo, usamos el comando g r e p. El comando f i n d primero compara todos los archivos con el nombre de archivo " passwd * ", como passwd, passwd.old, passwd.bak, y luego ejecuta el comando grep para ver si hay un usuario sam en estos archivos.

Copyright © Conocimiento de Windows All Rights Reserved