En Linux, siempre parece haber una forma ingeniosa de hacer las cosas. Para cualquier tarea, siempre hay más de una utilidad de línea de comandos para ejecutarla mejor. El comando stat de Linux es una herramienta de línea de comandos que se utiliza para mostrar información detallada sobre un archivo. En esta guía, destacamos 8 usos del comando stat en Linux. Esto funciona en todas las distribuciones de Linux.
Comando de estadísticas de Linux
Piense en el comando stat como una mejor versión del comando ls -l. Mientras que el indicador -l proporciona más detalles sobre los archivos, como la propiedad y los permisos de los archivos, el comando stat va más allá y proporciona una gran cantidad de información sobre un archivo.
La sintaxis para el comando stat de Linux es como se muestra:
$ estadística [OPTION] Nombre del archivo
1) Comando Stat sin argumentos
En su forma más simple, sin ningún parámetro, el comando stat muestra la salida predeterminada. Esto incluye tamaño y tipo de archivo, tipo de dispositivo, número de inodo, UID, GID, número de enlaces y fechas de acceso/modificación del archivo.
Por ejemplo, para ver los detalles del archivo de un archivo que reside en el directorio de inicio actual, ejecute:
$ stat file1.txt
Vamos a desarrollar la salida:
- Archivo: Esto muestra el nombre del archivo.
- Tamaño: Tamaño del archivo en bytes.
- Bloque: Número de bloques asignados al archivo.
- Bloque IO: este es el tamaño en bytes de cada bloque.
- Dispositivo: el número de dispositivo en formato hexadecimal o decimal.
- Inodo: Este es el número de inodo del archivo.
- Enlaces: Número de enlaces duros asociados con el archivo.
- Acceso: Permisos de archivo ya sea en formato simbólico o numérico.
- Uid: ID de usuario y nombre del propietario.
- Gid: ID de grupo y nombre del propietario.
- Contexto: contexto de seguridad de SeLinux
- Tipo de archivo: muestra de qué tipo es el archivo (ya sea un archivo normal, un enlace simbólico, etc.).
- Acceso: Muestra la última vez que se accedió al archivo.
- Modificar: Muestra la última vez que se cambió el contenido del archivo.
- Cambio: muestra la última vez que se cambiaron los metadatos de un archivo, por ejemplo, los permisos y la propiedad.
2) Ver información sobre múltiples archivos
Puede ver un informe detallado sobre varios archivos especificando los archivos en la línea de comandos uno tras otro, como se muestra.
$ stat file1.txt file2.pdf
3) Mostrar el estado del sistema de archivos
Puede verificar el estado del sistema de archivos donde se encuentra el archivo usando la opción -f como se muestra. Esto le brinda el tamaño del bloque, la memoria total y disponible, por mencionar solo algunos atributos.
$ stat -f /home
4) Mostrar información en forma concisa
La opción -t se usa para mostrar información en un formato conciso como se muestra:
$ stat -t file1.txt
5) Habilitar el seguimiento de enlaces simbólicos
Por lo general, si ejecuta el comando stat en un enlace simbólico, solo le dará información sobre el enlace, y no el archivo al que apunta el enlace. Tomemos por ejemplo el enlace simbólico /usr/share/zoneinfo/America/Cayman.
$ stat /usr/share/zoneinfo/America/Cayman
En el ejemplo anterior, el enlace simbólico /usr/share/zoneinfo/America/Cayman apunta a ( ->) Panamá. El enlace simbólico es de sólo 6 bytes.
Para obtener información sobre el archivo al que apuntan los enlaces, utilice la opción -L, también conocida como desreferencia opción.
$ stat -L /usr/share/zoneinfo/America/Cayman
Esto ahora muestra información sobre el archivo y no sobre el enlace, aunque la salida sugiere que es el enlace. Esto se debe a que lo pasamos como argumento con el comando stat.
6) Secuenciación de formato
De ejemplos anteriores, hemos visto que el comando stat imprime una gran cantidad de información en la terminal. Si desea información específica, puede personalizar la salida utilizando una secuencia de formato para proporcionar exactamente lo que necesita y dejar otros detalles.
Las expresiones populares utilizadas para personalizar la salida incluyen la opción –printf o –format
Por ejemplo, para mostrar el inodo de un archivo únicamente, use la secuencia de formato %i como se muestra. El operando n imprime una nueva línea.
$ stat --printf='%in' file1.txt
Para mostrar los derechos de acceso y el uid (ID de usuario), utilice las secuencias de formato %ay %u.
$ stat --printf='%a:%un' file1.txt
La opción –formato imprime una nueva línea sin requerir un operando adicional.
$ stat --format='%a:%F' file1.txt
Aquí hay una lista completa de las secuencias de formato que puede usar:
- %a Muestra los derechos de acceso en formato octal.
- %A Muestra los derechos de acceso en un formato legible por humanos.
- %b Este es el número de bloques asignados (ver %B).
- %B el tamaño en bytes de cada bloque informado por %b.
- %C Muestra la cadena de contexto de seguridad de SELinux.
- %d Muestra el número de dispositivo en formato decimal.
- %D El número de dispositivo en formato hexadecimal.
- %f Muestra el modo sin formato en hexadecimal.
- %F Muestra el tipo de archivo.
- %g Imprime el ID de grupo del propietario.
- %G Imprime el nombre del grupo del propietario.
- %h Muestra el número de enlaces duros.
- %i Imprime el número de inodo.
- %m Imprime el punto de montaje.
- %n Muestra el nombre de archivo del archivo
- %N Muestra el nombre del archivo entrecomillado sin referencia si es un enlace simbólico
- %o Imprime la sugerencia de tamaño de transferencia de E/S óptimo.
- %s tamaño total, en bytes.
- %t tipo de dispositivo principal en hexadecimal, para archivos especiales de dispositivo de carácter/bloque
- %T tipo de dispositivo secundario en hexadecimal, para archivos especiales de dispositivo de carácter/bloque
- %u Muestra el ID de usuario del propietario.
- %U Imprime el nombre de usuario del propietario.
- %w Revela la hora de nacimiento del archivo, legible por humanos; – si se desconoce.
- %W Imprime la hora de nacimiento del archivo, segundos desde Epoch; 0 si se desconoce.
- %x La hora del último acceso, legible por humanos.
- %X La hora del último acceso, segundos desde Epoch.
- %y Muestra la última hora de la última modificación, legible por humanos.
- %Y Imprime la hora de la última modificación, segundos desde Epoch.
- %z Esta es la hora del último cambio, legible por humanos.
- %Z La hora del último cambio, segundos desde Epoch.
7) Obtener ayuda con el comando stat
Para obtener más opciones de comando, use la opción –help con el comando stat como se muestra.
$ stat --help
También puede visitar las páginas man del comando stat, ejecutar
$ man stat
8) Comprobación de la versión de stat
Finalmente, para verificar la versión del comando stat, ejecute el comando:
$ stat --version
Eso es lo que teníamos reservado para usted en esta guía. Como puede ver, el comando stat va más allá de lo que le brinda el comando ls y es ideal para recopilar información detallada sobre un archivo o sistema de archivos.
Leer también : 14 ejemplos útiles de comandos ‘ls’ en Linux