Blocos, Superblocos e Inodes - Noções Básicas e comandos stat e dumpe2fs - Linux
Tabla de contenido:
- Usando el comando
stat
- Visualización de información sobre el sistema de archivos
- Desreferenciar (seguir) enlaces simbólicos
- Personalizando la salida
- Conclusión
stat
es una utilidad de línea de comandos que muestra información detallada sobre determinados archivos o sistemas de archivos.
Este artículo explica cómo usar el comando
stat
.
Usando el comando
stat
La sintaxis para el comando
stat
es la siguiente:
stat… FILE…
stat
acepta uno o más nombres de
FILE
entrada e incluye una serie de opciones que controlan el comportamiento del comando y la salida.
Echemos un vistazo al siguiente ejemplo:
stat file.txt
La salida se verá más o menos así:
File: file.txt Size: 4030 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049d Inode: 13633379 Links: 1 Access: (0644/-rw-r--r--) Uid: (1000/ linuxize) Gid: (1000/ linuxize) Access: 2019-11-06 09:52:17.991979701 +0100 Modify: 2019-11-06 09:52:17.971979713 +0100 Change: 2019-11-06 09:52:17.971979713 +0100 Birth: -
Cuando se invoca sin ninguna opción,
stat
muestra la siguiente información del archivo:
- Archivo - El nombre del archivo. Tamaño - El tamaño del archivo en bytes. Bloques - El número de bloques asignados que toma el archivo. Bloque IIO - El tamaño en bytes de cada bloque. Tipo de archivo - (ej. Archivo regular, directorio, enlace simbólico…) Dispositivo: número de dispositivo en hexadecimal y decimal.Inodo: número de modo. Enlaces: número de enlaces duros. Acceso: permisos de archivo en los métodos numéricos y simbólicos. Uid: ID de usuario y nombre del propietario. Gid: grupo ID y nombre del propietario. Contexto: el contexto de seguridad de SELinux. Acceso: la última vez que se accedió al archivo. Modificar: la última vez que se modificó el contenido del archivo. Cambio: la última vez que se cambió el atributo o contenido del archivo. Nacimiento: Tiempo de creación de archivos (no compatible con Linux).
Visualización de información sobre el sistema de archivos
Para obtener información sobre el sistema de archivos donde reside el archivo dado, en lugar de información sobre el archivo en sí, use la opción
-f
, (
--file-system
):
stat -f file.txt
El resultado del comando se verá así:
File: "package.json" ID: 8eb53097b4494d20 Namelen: 255 Type: ext2/ext3 Block size: 4096 Fundamental block size: 4096 Blocks: Total: 61271111 Free: 25395668 Available: 22265851 Inodes: Total: 15630336 Free: 13979610
Cuando se invoca
stat
con la opción
-f
, muestra la siguiente información:
- Archivo: el nombre del archivo. ID: ID del sistema de archivos en hexadecimal. Namelen: longitud máxima de los nombres de archivo. Tamaño de bloque fundamental: el tamaño de cada bloque en el sistema de archivos.
- Total: número de bloques totales en el sistema de archivos. Gratis: número de bloques libres en el sistema de archivos. Disponible: número de bloques libres disponibles para usuarios no root.
- Total: número de inodos totales en el sistema de archivos. Libre: número de inodos libres en el sistema de archivos.
Desreferenciar (seguir) enlaces simbólicos
Por defecto,
stat
no sigue enlaces simbólicos. Si ejecuta el comando en un enlace simbólico, la salida incluirá información sobre el enlace simbólico, no el archivo al que apunta:
stat /etc/resolv.conf
File: /etc/resolv.conf ->../run/systemd/resolve/stub-resolv.conf Size: 39 Blocks: 0 IO Block: 4096 symbolic link Device: 801h/2049d Inode: 8126659 Links: 1 Access: (0777/lrwxrwxrwx) Uid: (0/ root) Gid: (0/ root) Access: 2019-11-06 21:12:26.875956073 +0100 Modify: 2018-07-24 11:11:48.128794519 +0200 Change: 2018-07-24 11:11:48.128794519 +0200 Birth: -
Para desreferenciar (seguir) el enlace simbólico y mostrar información sobre el archivo al que apunta el enlace simbólico, use la opción
-L
, (-
--dereference
):
stat -L /etc/resolv.conf
File: /etc/resolv.conf Size: 715 Blocks: 8 IO Block: 4096 regular file Device: 17h/23d Inode: 989 Links: 1 Access: (0644/-rw-r--r--) Uid: (101/systemd-resolve) Gid: (103/systemd-resolve) Access: 2019-11-06 20:35:25.603689619 +0100 Modify: 2019-11-06 20:35:25.555689733 +0100 Change: 2019-11-06 20:35:25.555689733 +0100 Birth: -
Personalizando la salida
El comando
stat
tiene dos opciones que le permiten personalizar la salida según sus necesidades:
-c
, (
--format="format"
) y
--printf="format"
.
La diferencia entre estas dos opciones es que cuando se usan dos o más archivos como operantes, el
--format
agrega automáticamente una nueva línea después de la salida de cada operando.
--printf
interpreta los escapes de barra invertida.
Hay muchas directivas de formato para archivos y sistemas de archivos que se pueden usar con
--format
y
--printf
.
Por ejemplo, para ver solo el tipo de archivo que usaría:
stat --format="%F" /dev/null
character special file
Puede combinar cualquier cantidad de directivas de formato y, opcionalmente, utilizar separadores personalizados entre ellas. El separador puede ser un solo carácter o una cadena:
stat --format="%n, %F" /dev/null
/dev/null, character special file
Para interpretar caracteres especiales como nueva línea o tabulación, use la opción
--printf
:
stat --printf='Name: %n\nPermissions: %a\n' /etc
imprime una nueva línea:
Name: /etc Permissions: 755
La
stat
también puede mostrar la información en forma concisa. Este formato es útil para el análisis de otras utilidades.
Invoque el comando con la opción
-t
(
--terse
) para imprimir la salida en forma concisa:
stat -t /etc
/etc 12288 24 41ed 0 0 801 8126465 147 0 0 1573068933 1573068927 1573068927 0 4096
Para obtener una lista completa de todas las directivas de formato para archivos y sistemas de archivos, escriba
man stat
o
stat --help
en su terminal.
Conclusión
El comando
stat
imprime información sobre archivos y sistemas de archivos dados.
En Linux, hay varios otros comandos que pueden mostrar información sobre archivos dados, siendo
ls
el más utilizado, pero muestra solo una parte de la información proporcionada por el comando
stat
.
Comando Chmod en Linux (permisos de archivo)
En Linux, el acceso a los archivos se gestiona a través de los permisos, atributos y propiedad del archivo. Este tutorial cubre cómo usar el comando chmod para cambiar los permisos de acceso de archivos y directorios.
Comando chgrp en linux (cambiar grupo)
En Linux, cada archivo está asociado con un propietario y un grupo y tiene permisos que determinan qué usuarios pueden leer, escribir o ejecutar el archivo. El comando chgrpc cambia la propiedad del grupo de los archivos dados.
Comando cp en linux (copiar archivos)
cp es una utilidad de línea de comandos para copiar archivos y directorios en sistemas Unix y Linux.