En un artículo reciente de Opensource.com, Lewis Cowles presentó el find
comando.
find
es uno de los programas de línea de comandos más potentes y flexibles de la caja de herramientas diaria, por lo que vale la pena dedicarle un poco más de tiempo.
Como mínimo, find
toma un camino para encontrar cosas. Por ejemplo:
find /
encontrará (e imprimirá) cada archivo en el sistema. Y dado que todo es un archivo, obtendrá una gran cantidad de resultados para clasificar. Esto probablemente no te ayude a encontrar lo que estás buscando. Puede cambiar el argumento de la ruta para reducir un poco las cosas, pero aún así no es más útil que usar ls
dominio. Así que debes pensar en lo que estás tratando de localizar.
Quizás desee encontrar todos los archivos JPEG en su directorio de inicio. El -name
El argumento le permite restringir sus resultados a archivos que coincidan con el patrón dado.
find ~ -name '*jpg'
¡Pero espera! ¿Qué pasa si algunos de ellos tienen una extensión en mayúsculas? -name
es como -name
, pero no distingue entre mayúsculas y minúsculas.
find ~ -iname '*jpg'
¡Estupendo! Pero el esquema de nombres 8.3 es tan de 1985. Algunas de las imágenes pueden tener una extensión .jpeg. Afortunadamente, podemos combinar patrones con una "o", representada por -o
.
find ~ ( -iname 'jpeg' -o -iname 'jpg' )
Nos estamos acercando. Pero, ¿y si tienes algunos directorios que terminan en jpg? (Por qué nombró un directorio bucketofjpg
en lugar de pictures
está más allá de mí.) Podemos modificar nuestro comando con el -type
argumento para buscar solo archivos.
find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f
O tal vez le gustaría encontrar esos directorios con nombres extraños para poder renombrarlos más tarde:
find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type d
Resulta que has estado tomando muchas fotos últimamente, así que reduzcamos esto a los archivos que han cambiado en la última semana.
find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f -mtime -7
Más recursos de Linux
- Hoja de trucos de los comandos de Linux
- Hoja de trucos de comandos avanzados de Linux
- Curso en línea gratuito:Descripción general técnica de RHEL
- Hoja de trucos de red de Linux
- Hoja de trucos de SELinux
- Hoja de trucos de los comandos comunes de Linux
- ¿Qué son los contenedores de Linux?
- Nuestros últimos artículos sobre Linux
Puede hacer filtros de tiempo basados en el tiempo de cambio de estado del archivo (ctime
), hora de modificación (mtime
) o la hora de acceso (atime
). Estos son en días, por lo que si desea un control más detallado, puede expresarlo en minutos (cmin
, mmin
y amin
, respectivamente). A menos que sepa exactamente la hora que desea, probablemente anteponga al número +
(más que) o –
(menor que).
Pero tal vez no te importen tus fotos. Tal vez se está quedando sin espacio en el disco, por lo que desea encontrar todos los archivos gigantes (definámoslo como "más de 1 gigabyte") en el log
directorio:
find /var/log -size +1G
O tal vez quiera encontrar todos los archivos propiedad de bcotton en /data
:
find /data -owner bcotton
También puede buscar archivos según los permisos. Tal vez quiera encontrar todos los archivos de lectura mundial en su directorio de inicio para asegurarse de no compartir demasiado.
find ~ -perm -o=r
Esta publicación solo rasca la superficie de lo que find
puede hacer. La combinación de pruebas con la lógica booleana puede brindarle una flexibilidad increíble para encontrar exactamente los archivos que está buscando. Y con argumentos como -exec
o -delete
, puede tener find
actuar sobre lo que... encuentra. Tener cualquier find
favorito expresiones? ¡Compártelas en los comentarios!