El stat
comando de Linux le muestra muchos más detalles que los que muestra ls
. Eche un vistazo detrás de la cortina con esta utilidad informativa y configurable. Te mostraremos cómo usarlo.
El ls
comando es excelente en lo que hace, y hace mucho, pero con Linux, parece que siempre hay una manera de profundizar y ver qué hay debajo de la superficie. Y, a menudo, no se trata solo de levantar el borde de la alfombra. Puede romper las tablas del suelo y luego cavar un agujero. Puedes pelar Linux como una cebolla.
ls
le mostrará una gran cantidad de información acerca de un archivo, como qué permisos están establecidos en él, qué tan grande es y si es un archivo o un enlace simbólico . Para mostrar esta información, ls
léala de una estructura de sistema de archivos llamada inodo .
Cada archivo y directorio tiene un inodo. El inodo contiene metadatos sobre el archivo , como qué bloques de sistema de archivos ocupa y las marcas de fecha asociadas con el archivo. El inodo es como una tarjeta de biblioteca para el archivo. Pero ls
solo te mostrará parte de la información. Para ver todo, necesitamos usar el stat
comando.
Como ls
, el stat
comando tiene muchas opciones. Esto lo convierte en un gran candidato para el uso de alias. Una vez que haya descubierto un conjunto particular de opciones que le stat
proporcionen el resultado que desea, envuélvalo en un alias o función de shell . Esto lo hace mucho más cómodo de usar y no tiene que recordar un arcano conjunto de opciones de línea de comandos.
Usemos ls
para darnos una lista larga ( -l
opción) con tamaños de archivo legibles por humanos ( -h
opción):
ls -lh ana.h
De izquierda a derecha, la información que proporciona ls es:
ana.c
.Echemos un vistazo con stat
:
stat ana.h
La información que obtenemos stat
es:
stat
en la línea de comandos, pero puede ser diferente si miramos un enlace simbólico.stat
en un directorio, este número representa la cantidad de archivos en el directorio, incluido el «.» la entrada para el directorio actual y la entrada «..» para el directorio principal.rwx
formato octal y tradicional (lectura, escritura, ejecución).relatime
, que intenta optimizar las escrituras del disco duro necesarias para actualizar el tiempo de acceso . En pocas palabras, el tiempo de acceso se actualiza si es anterior al tiempo modificado.Las marcas de tiempo son sensibles a la zona horaria. El -0500
al final de cada línea muestra que este archivo se creó en una computadora en una zona horaria de hora universal coordinada (UTC) que está cinco horas antes que la zona horaria de la computadora actual. Entonces, esta computadora está cinco horas detrás de la computadora que creó este archivo. De hecho, el archivo se creó en una computadora de la zona horaria del Reino Unido y lo estamos viendo aquí en una computadora en la zona horaria estándar del este de EE. UU.
Las marcas de tiempo de modificación y cambio pueden causar confusión porque, para los no iniciados, sus nombres suenan como si significaran lo mismo.
Usemos chmod
para modificar los permisos de archivo en un archivo llamado ana.c
. Vamos a hacer que todos puedan escribirlo. Esto no afectará el contenido del archivo, pero afectará los atributos del archivo.
chmod + w ana.c
Y luego usaremos stat
para mirar las marcas de tiempo:
stat ana.c
La marca de tiempo del cambio se ha actualizado, pero la modificada no.
La marca de tiempo modificada solo se actualizará si se cambia el contenido del archivo. La marca de tiempo del cambio se actualiza tanto para los cambios de contenido como para los cambios de atributos.
Para tener un informe estadístico sobre varios archivos a la vez, pase los nombres de archivo a stat
en la línea de comando:
stat ana.h ana.o
Para usar stat
en un conjunto de archivos, use la coincidencia de patrones. El signo de interrogación «?» representa cualquier carácter individual y el asterisco «*» representa cualquier cadena de caracteres. Podemos decirle stat
que informe sobre cualquier archivo llamado «ana» con una extensión de una sola letra, con este comando:
stat ana.?
stat
puede informar sobre el estado de los sistemas de archivos, así como el estado de los archivos. La -f
opción (sistema de archivos) indica stat
que se informe sobre el sistema de archivos en el que reside el archivo. Tenga en cuenta que también podemos pasar un directorio como «/» en stat
lugar de un nombre de archivo.
stat -f ana.c
La información stat
que nos brinda es:
Bloques:
Inodos:
Si utiliza stat
un archivo que en realidad es un enlace simbólico, se informará sobre el enlace. Si desea stat
informar sobre el archivo al que apunta el enlace, utilice la -L
opción (eliminar referencia). El archivo code.c
es un enlace simbólico a ana.c
. Veámoslo sin la -L
opción:
stat code.c
El nombre del archivo muestra code.c
apuntando a ( ->
) ana.c
. El tamaño del archivo es de solo 11 bytes. No hay bloques dedicados a almacenar este enlace. El tipo de archivo se muestra como un enlace simbólico.
Claramente, no estamos viendo el archivo real aquí. Hagamos eso de nuevo y agreguemos la -L
opción:
stat -L code.c
Esto ahora muestra los detalles del archivo para el archivo al que apunta el enlace simbólico. Pero tenga en cuenta que el nombre del archivo todavía se da como code.c
. Este es el nombre del enlace, no el archivo de destino. Esto sucede porque este es el nombre al que pasamos stat
en la línea de comando.
La -t
opción (concisa) hace stat
que proporcione un resumen condensado:
stat -t ana.c
No se han dado pistas. Para que tenga sentido, hasta que haya memorizado la secuencia de campo, debe hacer una referencia cruzada de esta salida a una stat
salida completa .
Una mejor forma de obtener un conjunto de datos diferente stat
es utilizar un formato personalizado. Existe una larga lista de tokens llamados secuencias de formato. Cada uno de estos representa un elemento de datos. Seleccione los que desea incluir en la salida y cree una cadena de formato. Cuando llamamos stat
y le pasamos la cadena de formato, la salida solo incluirá los elementos de datos que solicitamos.
Hay diferentes conjuntos de secuencias de formato para archivos y sistemas de archivos. La lista de archivos es:
rwx
).La «época» es la época de Unix , que tuvo lugar en 1970-01-01 00:00:00 + 0000 (UTC).
Para los sistemas de archivos, las secuencias de formato son:
Hay dos opciones que aceptan cadenas de secuencias de formato. Estos son --format
y --printf
. La diferencia entre ellos es que --printf
interpreta secuencias de escape de estilo C , como nueva línea \n
y tabulación \t
, y no agrega automáticamente un carácter de nueva línea a su salida.
Creemos una cadena de formato y pasámosla a stat
. Las secuencias de formato que se van a utilizar son %n
para el nombre del archivo, %s
para el tamaño del archivo y %F
para el tipo de archivo. Vamos a agregar la \n
secuencia de escape al final de la cadena para asegurarnos de que cada archivo se maneja en una nueva línea. Nuestra cadena de formato se ve así:
"El archivo% n tiene% s bytes y es% F \ n"
Vamos a pasar esto para stat
usar la --printf
opción. Vamos a solicitar stat
un informe sobre un archivo llamado code.c
y un conjunto de archivos que coinciden ana.?
. Este es el comando completo. Tenga en cuenta el signo igual » =
» entre --printf
y la cadena de formato:
stat --printf = "El archivo% n tiene% s bytes y es un código% F \ n" .c ana / ana.?
El informe de cada archivo aparece en una nueva línea, que es lo que solicitamos. El nombre del archivo, el tamaño del archivo y el tipo de archivo se nos proporcionan.
Los formatos personalizados le dan acceso a incluso más elementos de datos de los que se incluyen en la stat
salida estándar .
Como puede ver, existe un enorme margen para extraer los elementos de datos particulares que son de su interés. Probablemente también pueda ver por qué recomendamos usar alias para los encantamientos más largos y complejos.
El mundo del gaming ha experimentado un crecimiento exponencial en los últimos años. La…
Stokkete/Shutterstock.com ¿Sigue utilizando una unidad flash USB obsoleta para almacenar sus archivos? ¿Por qué no…
LG Los fabricantes siempre intentan mejorar el rendimiento de imagen de los monitores. Como resultado,…
Patty Chan/Shutterstock.com Si cree en lo que ve en las redes sociales, puede pensar en…
Seksan.TH/Shutterstock.com Los servicios de suscripción como Netflix, Game Pass y Spotify nos permiten consumir tantas…
fatmawati achmad zaenuri/Shutterstock El acceso a Internet, oa cualquier otra red, se rige por la…