Uso del comando stat en linux.
El comando stat, es un comando simple que podíamos definir como una versión mejorada de la herramienta «ls -l«. Con «ls», el indicador «-l» nos ofrece más detalles de los archivos, como el propietario y los permisos, pero el comando stat profundiza aún más en ellos, imprimiendo en la consola una gran cantidad de información sobre el archivo requerido.
A diferencia de «ls», la herramienta en consola stat no tiene tantas opciones. Sin embargo lo que hace, lo hace muy bien, incluyendo datos del archivo que realmente te sorprenderán. Stat viene por defecto en cualquier distribución linux que se precie, por tanto no tendrás ningún problema con ella. En este artículo vemos algunos ejemplos de uso.
Uso del comando stat
Uso del comando stat en linux
En su sintaxis más simple, sin ningún parámetro adicional, el comando stat muestra la salida predeterminada. Esto incluye mucha y valiosa información, como el tamaño y el patrón de archivo, también el tipo de dispositivo, el número de inodo, UID, GID, y también el número de enlaces además de las fechas de acceso y modificación del archivo.
Para crear el artículo, nosotros tomamos como ejemplo un script bash conocido por todos los seguidores de sololinux, dada su gran utilidad a la hora de limpiar servidores linux, es evidente que hablamos de «libera.sh».
stat libera.sh
Observa la información aportada en el siguiente ejemplo…
sergio@sololinux:~$ stat libera.sh Fichero: libera.sh Tamaño: 1986 Bloques: 8 Bloque E/S: 4096 fichero regular Dispositivo: 802h/2050d Nodo-i: 4984706 Enlaces: 1 Acceso: (0644/-rw-r--r--) Uid: ( 1000/ sergio) Gid: ( 1000/ sergio) Acceso: 2020-12-07 17:35:23.682788999 +0200 Modificación: 2020-12-07 15:35:56.184869372 +0200 Cambio: 2020-12-07 15:35:56.184869372 +0200 Creación: -
Con el comando stat, también es posible identificar dos archivos o más.
stat libera.sh libera1.sh
Veremos una salida similar a…
sergio@sololinux:~$ stat libera.sh libera1.sh Fichero: libera.sh Tamaño: 1986 Bloques: 8 Bloque E/S: 4096 fichero regular Dispositivo: 802h/2050d Nodo-i: 4984706 Enlaces: 1 Acceso: (0644/-rw-r--r--) Uid: ( 1000/ sergio) Gid: ( 1000/ sergio) Acceso: 2020-12-07 17:35:23.682788999 +0200 Modificación: 2020-12-07 15:35:56.184869372 +0200 Cambio: 2020-12-07 15:35:56.184869372 +0200 Creación: - Fichero: libera1.sh Tamaño: 5840 Bloques: 16 Bloque E/S: 4096 fichero regular Dispositivo: 802h/2050d Nodo-i: 4989994 Enlaces: 1 Acceso: (0644/-rw-r--r--) Uid: ( 1000/ sergio) Gid: ( 1000/ sergio) Acceso: 2020-12-07 17:35:43.247842441 +0200 Modificación: 2020-12-07 17:38:22.044392534 +0200 Cambio: 2020-12-07 17:55:56.909189646 +0200 Creación: -
La información aportada nos indica estos datos:
- Fichero : Nombre del archivo.
- Tamaño : Tamaño del archivo en bytes.
- Bloques : Número de bloques asignados al archivo.
- Bloque E/S (IO) : Bytes de cada bloque.
- Dispositivo : Número de dispositivo en formato hexadecimal o decimal.
- Inode : Inodo del archivo.
- Enlaces : Enlaces físicos asociados al archivo.
- Acceso : Indica los permisos del archivo en formato simbólico o numérico.
- Uid : ID del usuario y nombre del propietario.
- Gid : ID del grupo y nombre del propietario.
- Acceso : Nos muestra la última vez que se accedió al archivo.
- Modificación: Última vez que se modificó el contenido del archivo.
- Cambio : Última vez que los metadatos de un archivo se modificaron, por ejemplo, los permisos y propiedad.
Si te parece un poco apabullante tanto texto, puedes concentrarlo todo aplicando la opción «-t».
stat -t libera.sh
Vemos una imagen de ejemplo…
Comando stat con la opción -t
También podemos visualizar el estado de un directorio, por ejemplo de nuestra carpeta /home. Comando stat.
stat -f /home
Nos aparece lo siguiente….
sergio@sololinux:~$ stat -f /home Fichero: "/home" ID: 3f5dcdd55de413a9 Longnombre: 255 Tipo: ext2/ext3 Tam. bloque: 4096 Tam. bloque fundamental: 4096 Bloques: Total: 30507684 Libres: 20668236 Disponibles: 19107776 Nodos-i: Total: 7782400 Libres: 7335692
Con «–help», visualizamos la ayuda del comando stat.
stat --help
sergio@sololinux:~$ stat --help Modo de empleo: stat [OPCIÓN]... FICHERO... Muestra el estado del fichero o del sistema de ficheros. Los argumentos obligatorios para las opciones largas son también obligatorios para las opciones cortas. -L, --dereference sigue los enlaces -f, --file-system muestra el estado del sistema de ficheros en lugar del estado del fichero -c --format=FORMATO usa el FORMATO especificado en vez del predeterminado; muestra una nueva línea después de cada uso del FORMATO --printf=FORMATO como --format, pero interpreta las secuencias de escape, y no muestra un carácter de nueva línea final obligatoriamente; si quiere un carácter de nueva línea, incluya \n en el FORMATO -t, --terse muestra la información de manera escueta --help muestra esta ayuda y finaliza --version informa de la versión y finaliza The valid format sequences for files (without --file-system): %a access rights in octal (note '#' and '0' printf flags) %A access rights in human readable form %b number of blocks allocated (see %B) %B the size in bytes of each block reported by %b %C SELinux security context string %d número de dispositivo en decimal %D número de dispositivo en hexadecimal %f modo en hexadecimal %F tipo de fichero %g ID del grupo del propietario %G nombre de grupo del propietario %h número de enlaces duros %i número de nodo-i %m punto de montaje %n nombre del fichero %N nombre de fichero entrecomillado desreferenciado si era un enlace simbólico %o indicación del tamaño óptimo de bloque de E/S %s tamaño total, en bytes %t tipo de dispositivo principal en hexadecimal, para ficheros especiales de caracteres o dispositivos de bloques %T tipo de dispositivo secundario en hexadecimal, para ficheros especiales de caracteres o dispositivos de bloques %u ID de usuario del propietario %U nombre de usuario del propietario %w fecha de creación del fichero, formato legible, - si es desconocido %W fecha de creación, segundos desde la Época, 0 si es desconocido %x fecha de último acceso, formato legible %X fecha de último acceso, segundos desde la Época %y fecha de última modificación en los datos, formato legible %Y fecha de última modificación en los datos, segundos desde la Época %z fecha de último cambio en el estado, formato legible %Z fecha de último cambio en el estado, segundos desde la Época Formatos válidos para sistemas de ficheros: %a bloques libres disponibles para el no superusuario %b total de bloques de datos en el sistema de ficheros %c total de nodos de ficheros en el sistema de ficheros %d nodos de ficheros libres en el sistema de ficheros %f bloques libres en el sistema de ficheros %i id del sistema de ficheros en hexadecimal %l longitud máxima de los nombres de ficheros %n nombre del fichero %s tamaño de bloque de transferencia óptima %S tamaño de bloque fundamental (para contar bloques) %t tipo en hexadecimal %T tipo de forma legible NOTA: su shell puede tener su propia versión de stat, que usualmente tiene prioridad sobre la versión que se describe aquí. Por favor acuda a la documentación de su shell para saber los detalles sobre las opciones que admite. ayuda en línea sobre GNU coreutils: <http://www.gnu.org/software/coreutils/> Informe de errores de traducción en stat a <http://translationproject.org/team/es.html> Full documentation at: <http://www.gnu.org/software/coreutils/stat> or available locally via: info '(coreutils) stat invocation'
Como puedes verificar, la opción help del comando stat nos ofrece una valiosa información sobre la herramienta. Nosotros concluimos la presentación de este comando, identificando la versión instalada en nuestro sistema.
stat --version
Imagen de ejemplo, con la versión instalada en nuestro linux.
Versión instalada del comando stat
Canales de Telegram: Canal SoloLinux – Canal SoloWordpress
Espero que este artículo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales. Uso del comando stat en linux.