Métodos de pago Abuse

Qué hace el comando stat en Linux

14.11.2021, 16:15

Cada archivo y carpeta del sistema de archivos tiene una estructura denominada Inode, donde se almacenan los metadatos de este objeto. Almacena el propietario, el grupo de propietarios, la hora de modificación, creación y acceso al archivo, así como otra información. Se puede ver no sólo con la ayuda de herramientas de depuración del sistema de archivos. Cierta información es mostrada por la utilidad ls, pero si necesitas más, puedes usar el comando stat. A continuación te diremos cómo usar este comando en Linux.

Qué hace el comando

La sintaxis del comando es sencilla. Necesita que se le pasen las opciones y la ruta al fichero del que se quiere ver la información:

$ stat [options] /path/to/file

No es necesario pasar opciones y no hay muchas:

-L, dereference - muestra información del fichero en lugar de un enlace simbólico;

-f, --file-system - muestra información sobre el sistema de ficheros en el que se encuentra el fichero;

-c, --format- permite especificar el formato de salida en lugar del estándar, cada fichero sale por una nueva línea;

--printf - similar a --format, sólo que para una nueva línea debe utilizar ;

-t, --terse - muestra información de forma muy breve, en una sola línea;

--version - muestra la versión de la utilidad.

Veamos algunos ejemplos de uso. Para ver información sobre un fichero, basta con ejecutar el programa sin opciones pasándole la ruta al fichero, por ejemplo /etc/passwd:

$ stat /etc/passwd

Salida del programa:

Fichero- la ruta al fichero del que se muestra la información;

Tamaño- el tamaño del fichero en bytes;

BloqueIO- el tamaño del bloque del sistema de archivos en bytes;

Bloques- número de bloques del sistema de ficheros ocupados por el fichero;

Dispositivo- identificador del dispositivo, por ejemplo HDD, en el que está guardado el fichero;

Inode - número único de Inode de este fichero;

Enlaces- número de enlaces duros a este archivo;

Access - derechos de acceso al fichero;

Uid - identificador y nombre del usuario-propietario del archivo;

Gid - identificador y nombre del grupo del archivo;

Acceso- hora del último acceso al fichero;

Modificar- hora en que se modificó por última vez el contenido del fichero;

Modificado- hora de la última modificación de los atributos o del contenido del fichero;

Creado(nacimiento) - reservado para mostrar la fecha de creación original del archivo, pero aún no se ha implementado.

Tenemos que hablar un poco más sobre el formato de la hora. Por ejemplo, la hora del último acceso al archivo es 2020-12-02 18:25:01.043831739 +0200. Esta hora se muestra teniendo en cuenta la zona horaria. Y los números +0200 muestran que la zona horaria del ordenador que creó o modificó este archivo es dos horas más que UTC, es decir, Europa/Kiev en horario de invierno.

Si intenta pasar a la utilidad un enlace simbólico, sólo mostrará información del Inode del propio enlace:

$ stat /etc/passwdlin

Para ver información sobre el fichero apuntado por el enlace, utilice la opción -L:

$ stat -L /etc/passwdlink

Puede pasar más de un fichero:

$ stat /etc/passwd /etc/group

Para formatear la salida puede utilizar las siguientes secuencias de caracteres:

%A - derechos de acceso;

%b - número de bloques ocupados;

%F - tipo de archivo;

%g - identificador de grupo de archivos

%G - nombre de grupo de archivos

%i - identificador de inodo

%n - nombre de archivo;

%s - tamaño del archivo;

%u - identificador del propietario del archivo

%U - nombre del propietario del archivo

%x - hora del último acceso

%y - hora de la última modificación del contenido

%z - hora de la última modificación del contenido o los atributos.

Estas no son todas las secuencias posibles, puede encontrar más en la ayuda de la utilidad:

$ man stat

Por ejemplo, vamos a mostrar sólo el nombre de un fichero y la hora de la última modificación de su contenido:

$ stat --printf "File %n has been modified %y " /etc/passwd /etc/group

Si desea ver información sobre el sistema de archivos en el que se encuentra el archivo, debe utilizar la opción -f:

$ stat -f /etc/passwd

Veamos qué significan los campos que muestra la utilidad:

Archivo- el nombre del archivo;

Type- tipo de sistema de archivos;

ID - identificador del sistema de archivos;

Longitud del nombre(Namelen) - la longitud máxima del nombre en el sistema de archivos;

Tamaño debloque- cantidad de datos en una petición de lectura o escritura para una velocidad óptima;

Tamaño debloque fundamental- tamaño de bloque físico en el sistema de ficheros.

A continuación están el número total de bloques en el sistema y el número de bloques libres.