Это должно сработать, но я не являюсь экспертом в awk, поэтому могут быть лучшие ответы, если вы подождете:
*awk 'BEGIN { FS="," }
/PREFIX/ {
if ($0 ~ /TYPE_1/) {printf "[TYPE1] [DATA: $2]"} // <-- included pattern
if ($0 ~ /TYPE_2/) {printf "[TYPE2] [DATA: $2]"} // <-- another included pattern
... // <-- some more included patterns
}' "filename"
stat /bin/su
muestra en un sistema:
Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Está la representación octal 4755
de los 12 bits de modo. El número corresponde a los bits:
octal 4 7 5 5
bits 100 111 101 101
sst uuu ggg ooo
ug rwx rwx rwx
Donde uuu
, ggg
y ooo
son los bits de permiso para el usuario, grupo y otros. El grupo restante (el primero en orden )contiene los bits setuid (su
), setgid(sg
)y sticky (t
).
Los bits setuid y sticky a menudo no se mencionan, ya que son cero para la mayoría de los archivos. Todavía están allí para cada archivo, guardados junto con los demás.
Si realmente nos ponemos manos a la obra, algunos sistemas de archivos e interfaces almacenan el tipo de archivo a lo largo de los bits de modo, en los bits aún -más altos. Lo anterior solo representa 12 bits, por lo que con un campo de 16 -bits, sobran 4. Véase, por ejemplo, la descripción de st_mode
enstat(2)
.
Los tres bits restantes representan los bits setuid, setgid y sticky; consulte Descripción de los permisos y tipos de archivo de UNIX para obtener más detalles. Todos estos se almacenan en el inodo.
Un directorio es, de hecho, una especie de archivo que almacena una lista de nombres y los inodos correspondientes. El nombre y el inodo propios de un directorio se almacenan en su directorio principal; el directorio raíz es un caso especial, normalmente es un inodo fijo en el sistema de archivos(inodo 2 en Ext4)y, por supuesto, siempre se llama /
(, que termina siendo relativo a su punto de montaje... ).