Como usar comando el cd en linux, moverse entre directorios
Tabla de contenido:
- Linux
find
sintaxis de comandos - Buscar archivos por nombre
- Buscar archivos por extensión
- Buscar archivos por tipo
- Buscar archivos por tamaño
- Buscar archivos por fecha de modificación
- Buscar archivos por permisos
- Buscar archivos por propietario
- Buscar y eliminar archivos
- Conclusión
El comando
find
es una de las herramientas más poderosas en el arsenal de administradores de sistemas Linux. Busca archivos y directorios en una jerarquía de directorios basada en una expresión dada por el usuario y puede realizar acciones especificadas por el usuario en cada archivo coincidente.
Puede usar el comando
find
para buscar archivos y directorios en función de sus permisos, tipo, fecha, propiedad, tamaño y más. También se puede usar en combinación con otras herramientas como
grep
o
sed
.
Linux
find
sintaxis de comandos
La sintaxis general para el comando
find
es la siguiente:
find
- El atributo de
options
controla el tratamiento de los enlaces simbólicos, las opciones de depuración y el método de optimización. El atributopath…
define el directorio o directorios de inicio donde find buscará los archivos. El atributo deexpression
se compone de opciones, patrones de búsqueda y acciones separadas por operadores.
Para buscar archivos en un directorio, el usuario que invoca el comando de
find
debe tener permisos de lectura en ese directorio.
Echemos un vistazo al siguiente ejemplo:
find -L /var/www -name "*.js"
- La opción
-L
(opciones) le dice al comandofind
que siga los enlaces simbólicos./var/www
(ruta…) especifica el directorio que se buscará. El (expresión)-name "*.js
le dice afind
que busque archivos que terminen en.js
(archivos JavaScript).
Buscar archivos por nombre
Encontrar archivos por nombre es probablemente el uso más común del comando
find
. Para buscar un archivo por su nombre, la opción
-name
siguió al nombre del archivo que está buscando.
Por ejemplo, para buscar un archivo llamado
document.pdf
en el directorio
/home/linuxize
, usaría el siguiente comando:
find /home/linuxize -type f -name document.pdf
Para ejecutar una búsqueda que no distingue entre mayúsculas y minúsculas, cambie la opción
-name
con
-iname
:
find /home/linuxize -type f -iname document.pdf
El comando anterior coincidirá con "Document.pdf", "DOCUMENT.pdf"..etc.
Buscar archivos por extensión
Buscar archivos por extensión es lo mismo que buscar archivos por nombre. Por ejemplo, para encontrar todos los archivos que terminan en
.log.gz
dentro del directorio
/var/log/nginx
puede usar:
find /var/log/nginx -type f -name '*.log.gz'
Es importante mencionar que cuando utiliza el carácter comodín, debe citar el patrón o escapar del símbolo de asterisco
*
con barra diagonal inversa
\
para que el intérprete no lo interprete.
Para encontrar todos los archivos que no coinciden con la expresión regular
*.log.gz
, puede usar la opción
*.log.gz
. Por ejemplo, para buscar todos los archivos que no terminan en
*.log.gz
, usaría:
find /var/log/nginx -type f -not -name '*.log.gz'
Buscar archivos por tipo
En ocasiones, es posible que deba buscar tipos de archivos específicos, como archivos normales, directorios o enlaces simbólicos. En Linux, todo es un archivo.
Para buscar archivos según su tipo, use la opción
-type
y uno de los siguientes descriptores para especificar el tipo de archivo:
-
f
: un archivo normald
: directoriol
: enlace simbólicoc
: dispositivos de caracteresb
: dispositivos de bloquep
: canalización con nombre (FIFO)s
: socket
Por ejemplo, para encontrar todos los directorios en el directorio de trabajo actual, usaría:
find. -type d
El ejemplo común sería cambiar recursivamente los permisos de archivo del sitio web a
644
y los permisos de directorio a
755
usando el comando
chmod
:
find /var/www/my_website -type d -exec chmod 0755 {} ;
find /var/www/my_website -type f -exec chmod 0644 {} ;
Buscar archivos por tamaño
Para buscar archivos en función del tamaño del archivo, pase el parámetro
-size
junto con los criterios de tamaño. Puede usar los siguientes sufijos para especificar el tamaño del archivo:
-
b
: bloques de 512 bytes (predeterminado)c
: bytesw
: palabras de dos bytesk
: kilobytesM
: megabytesG
: gigabytes
El siguiente comando encontrará todos los archivos de exactamente
1024
bytes dentro del directorio
/tmp
:
find /tmp -type f -size 1024c
El comando
find
también le permite buscar archivos que sean mayores o menores que un tamaño especificado.
En el siguiente ejemplo, estamos buscando todos los archivos de menos de
1MB
dentro del directorio de trabajo actual. Observe el símbolo menos antes del valor de tamaño:
find. -type f -size -1M
find. -type f -size +1M
Incluso puede buscar archivos dentro de un rango de tamaño. El siguiente comando encontrará todos los archivos entre
1
y
2MB
:
find. -type f -size +1M -size 21M
Buscar archivos por fecha de modificación
El comando
find
también puede buscar archivos en función de su última modificación, acceso o tiempo de cambio.
Igual que cuando busca por tamaño, use los símbolos más y menos para "mayor que" o "menor que".
Digamos que hace unos días modificó uno de los archivos de configuración de palomar, pero olvidó cuál. Puede filtrar fácilmente todos los archivos en el directorio
/etc/dovecot/conf.d
que termina con
.conf
y se han modificado en los últimos cinco días con:
find /etc/dovecot/conf.d -name "*.conf" -mtime 5
Aquí hay otro ejemplo de filtrado de archivos basado en la fecha de modificación utilizando la opción
-daystart
. El siguiente comando enumerará todos los archivos en el directorio
/home
que se modificaron hace
30
días o más:
find /home -mtime +30 -daystart
Buscar archivos por permisos
La opción
-perm
permite buscar archivos en función de los permisos del archivo.
Por ejemplo, para encontrar todos los archivos con permisos de exactamente
775
dentro del directorio
/var/www/html
, usaría:
find /var/www/html -perm 644
Puede prefijar el modo numérico con menos
-
o barra diagonal
/
.
Cuando se usa barra inclinada
/
como prefijo, al menos una categoría (usuario, grupo u otras) debe tener al menos los bits respectivos establecidos para que un archivo coincida.
Considere el siguiente comando de ejemplo:
find. -perm /444
El comando anterior coincidirá con todos los archivos con permisos de lectura establecidos para usuarios, grupos u otros.
Si menos
-
se utiliza como prefijo, para que el archivo coincida, al menos, se deben establecer los bits especificados. El siguiente comando buscará archivos que tengan permiso de lectura y escritura para el propietario y el grupo y que otros usuarios puedan leerlos:
Buscar archivos por propietario
Para buscar archivos propiedad de un usuario o grupo en particular, use las opciones
-group
y
-group
.
Por ejemplo, para buscar todos los archivos y directorios propiedad del usuario
linuxize
, debe ejecutar:
find / -user linuxize
Aquí hay un ejemplo del mundo real. Supongamos que desea encontrar todos los archivos propiedad del usuario
www-data
y cambiar la propiedad de los archivos coincidentes de
www-data
a
nginx
:
find / -user www-data -type f -exec chown nginx {} ;
Buscar y eliminar archivos
Para eliminar todos los archivos coincidentes, agregue la opción
-delete
al final de la expresión coincidente.
Asegúrese de utilizar esta opción solo cuando esté seguro de que el resultado coincide con los archivos que desea eliminar. Siempre es una buena idea imprimir los archivos coincidentes antes de usar la opción
-delete
.
Por ejemplo, para eliminar todos los archivos que terminan en
.temp
de
/var/log/
usaría:
find /var/log/ -name `*.temp` -delete
Use la opción
-delete
con extrema precaución. La línea de comando de búsqueda se evalúa como una expresión y si agrega primero la opción
-delete
, el comando eliminará todo lo que esté debajo de los puntos de inicio que especificó.
Cuando se trata de directorios,
find
solo puede eliminar directorios vacíos, lo mismo que
rmdir
.
Conclusión
Le hemos mostrado cómo usar el comando
find
con varias opciones y criterios.
Este artículo debería darle una comprensión fundamental de cómo ubicar archivos en sus sistemas Linux. También puede visitar la página de manual de
find
y leer sobre todas las otras opciones poderosas del comando
find
.
Cómo encontrar la dirección IP de un dominio usando el comando nslookup en windows
Cómo encontrar la dirección IP de un dominio usando el comando NSLookup en Windows.
Cómo liberar ram en windows usando la línea de comando
¿Alguna vez quisiste liberar algo de RAM en Windows usando nada más que una línea de comando? Así es como puedes hacer eso, con una pequeña aplicación genial.
Cómo eliminar archivos y directorios usando la línea de comando de Linux
En este tutorial, le mostraremos cómo usar el comando rm para eliminar archivos y directorios a través de ejemplos y explicaciones de las opciones rm más comunes.