¿Qué significan los campos en la salida ls -al?


218

El ls -alcomando muestra el siguiente resultado;

-rwxrw-r--    10    root   root 2048    Jan 13 07:11 afile.exe

¿Cuáles son todos los campos en la pantalla anterior?


qué significa L en estos permisos ... lrwxrwxrwx
Lin-man

1
Por favor lea la segunda respuesta. Es el indicador de tipo de archivo; Archivo normal (-), archivos de directorio (d), archivo de bloque (b), archivo de dispositivo de caracteres (c), archivo de tubería con nombre o simplemente un archivo de tubería (p), archivo de enlace simbólico (l), archivo (s) de socket. linuxnix.com/file-types-in-linux
Sr. White

Respuestas:


215

En el orden de salida;

-rwxrw-r--    1    root   root 2048    Jan 13 07:11 afile.exe
  • permisos de archivo,
  • número de enlaces,
  • nombre del dueño,
  • grupo de propietarios,
  • tamaño del archivo,
  • hora de la última modificación, y
  • nombre de archivo / directorio

Los permisos de archivo se muestran de la siguiente manera;

  • el primer carácter es -or lo d, d indica un directorio, una línea representa un archivo, l es un enlace simbólico (o enlace flexible) - tipo especial de archivo
  • tres conjuntos de caracteres, tres veces, que indican permisos para el propietario, el grupo y otros:
    • r = legible
    • w = grabable
    • x = ejecutable

En su ejemplo -rwxrw-r--, esto significa que la línea que se muestra es:

  • un archivo normal (mostrado como -)
  • legible, editable y ejecutable por el propietario (rwx)
  • legible, editable, pero no ejecutable por grupo (rw-)
  • legible pero no escribible o ejecutable por otro (r--)

14
Hay más de 2 tipos de archivo. -no es para los no-directorios , es para los archivos normales , hay más r, wy xpermisos. En la mayoría de los sistemas, el primer campo también se usa para indicar la presencia de atributos adicionales como ACL, atributos de seguridad u otros atributos extendidos. También tenga en cuenta que para enlaces simbólicos, el objetivo del enlace simbólico también se muestra en la salida de ls -l.
Stéphane Chazelas

12
El primer carácter puede tener valores diferentes (p. Ej. b, D , and p`). Hay una explicación completa en Wikipedia .
cenizas999

13
El número de campos está mal explicado. Para archivos significa número de enlaces duros. Para el directorio: número de directorios dentro del directorio + este directorio en sí + 1.
yanpas

13
Que number of linkssignifica Gracias.
tommy.carstensen

3
info lstiene más información
ctrl-alt-delor

94

La salida del comando "ls" depende de la versión de "ls", las opciones utilizadas, la plataforma utilizada, etc. Parece que, a partir de su ejemplo, lo está utilizando desde un típico un * x (como Linux), y probablemente usando una versión moderna "ls" típica. En ese caso:

-rwxrw-r--    10    root   root 2048    Jan 13 07:11 afile.exe
?UUUGGGOOOS   00  UUUUUU GGGGGG ####    ^-- date stamp and file name are obvious ;-)
^ ^  ^  ^ ^    ^      ^      ^    ^
| |  |  | |    |      |      |    \--- File Size
| |  |  | |    |      |      \-------- Group Name (for example, Users, Administrators, etc)
| |  |  | |    |      \--------------- Owner Acct
| |  |  | |    \---------------------- Link count (what constitutes a "link" here varies)
| |  |  | \--------------------------- Alternative Access (blank means none defined, anything else varies)
| \--\--\----------------------------- Read, Write and Special access modes for [U]ser, [G]roup, and [O]thers (everyone else)
\------------------------------------- File type flag

No estoy seguro de por qué su conteo de enlaces es tan alto para el archivo de ejemplo que enumeró. Algunas plataformas tienen una noción extraña de lo que constituye un "enlace". Estos generalmente incluyen enlaces duros y enlaces simbólicos, así como entradas de directorio (razón por la cual los directorios a menudo tienen un alto número de enlaces: su padre tiene un enlace, el directorio tiene un enlace a sí mismo en la .entrada y cada uno de sus subdirectorios tiene un enlace de vuelta a través de ..).

Algunas versiones y / o banderas de línea de comando enumerarán el número de bloques utilizados en lugar del número de bytes; un sistema de archivos con un tamaño de bloque de 1024 bytes enumerará todos los tamaños hasta 1024 bytes como "1", lo que significa que se usa 1 bloque, de 1025 a 2048 como "2", usando 2 bloques, y así sucesivamente. Pero enumerar tamaños de bloque por defecto (sin usar explícitamente una opción de línea de comando) es raro en la mayoría de las máquinas modernas un * x.

El indicador de acceso especial / alternativo suele ser un espacio en blanco, pero en algunas plataformas, se puede usar para indicar que hay modos de acceso especiales / alternativos (como ACL y descriptores de seguridad en WIN32, etc.), y varía ampliamente: consulte su manual , páginas de manual, herramienta de información o lo que no.

Los indicadores de permisos (modo) (UUUGGGOOO) son tres conjuntos de tres caracteres, donde el primer conjunto es "Usuario" (es decir, Propietario), el segundo conjunto es "Grupo" y el tercer conjunto es "Otros" (es decir, todos los demás ; cualquiera que no sea Propietario ni Grupo). Los tres indicadores de permisos en cada conjunto son típicamente ro -significan que el Usuario / Grupo / Otros puede leer el archivo ( r) o no ( -), seguido de wo -indicando si pueden escribir en el archivo (puede tener archivos en los que puede escribir, pero no puede leer, ¡por extraño que parezca!), y el tercer carácter es un indicador de "captura general" para otros modos, generalmente algo así como xpara ejecutar (para directorios, significa que puede intentar acceder al contenido del directorio), o -para ningunoso Spara programas setuid y / o setgid, u otros caracteres menos comunes; consulte su documentación "ls" para ver los caracteres de modo que mostrará.

Finalmente, el primer carácter es el tipo de archivo; normalmente uno de: dpara el directorio, lpara un enlace simbólico (los enlaces duros se muestran normalmente sin un carácter especial propio) o -para un archivo normal. Hay muchos otros tipos de archivos, pero menos comunes, para varios sistemas de archivos. Estos primeros diez caracteres (tipo de archivo y permisos) se discuten en Wikipedia . Nuevamente, su documentación le dirá exactamente qué tipo de archivos admite y muestra su comando.

Por cierto, si no puede encontrar una página man / info para "ls" ("man ls" / "info ls"), intente buscar en el paquete "coreutils" ("info coreutils"). También tenga en cuenta que entre las plataformas más comunes, las plataformas de Microsoft tienden a no traducirse muy bien a la salida "ls", por lo que puede ver comportamientos extraños, indicadores u otra información inusual en la salida, dependiendo de cómo fue su versión de "ls" compilado, contra qué estaba vinculado, etc.

Una advertencia más: la marca de tiempo del archivo suele ser la fecha / hora de la última modificación del archivo , no la hora en que se creó. De hecho, en un sistema de archivos un * x-ish, no hay registro del tiempo de creación del archivo; el campo ctime NO significa "tiempo de creación" como lo hace en los sistemas de archivos FAT / NTFS, sino que significa "tiempo de suspensión de inodo [C]", la hora en que se modificó por última vez el inodo. Las marcas de tiempo "mtime" (última [M] odified) y atime (última [A] ccesed / read) son las mismas en ambos sistemas, aunque la precisión (FAT tiene una granularidad de dos segundos, por ejemplo) y la zona horaria pueden variar .


44
¿Qué sistema incluye enlaces simbólicos en el recuento de enlaces?
celtschk

1
Lo siento, no estaba claro. Ningún sistema que conozco incluye enlaces simbólicos en el conteo de enlaces . Solo quise decir "lo que constituye un 'enlace'". Por ejemplo, en Windows ', un "enlace de shell" se considera un enlace, pero la mayoría de los comandos de la consola lo tratarán como un archivo normal. Esto incluye ls, que no lo incluirá en el recuento de enlaces. Que yo sepa, a menos que las fuentes de 'ls' se modifiquen de otra manera, solo informa lo que el sistema operativo informa para el recuento de enlaces.
CM

1
La inclusión de enlaces simbólicos y archivos .lnk requeriría un recorrido por todo el directorio try. Solo para enumerar un archivo. Sería muuuuuuuuy lento. Solo incluye enlace duro. Esa es la cantidad de entradas de directorio que tiene el archivo. (lo utiliza el recolector de basura. Cuando el recuento de referencias llega a cero, el archivo se elimina)
ctrl-alt-delor

1
Normalmente, mi comprensión de los sistemas operativos (SO) y los sistemas de archivos (FS) estaría de acuerdo, pero de vez en cuando he visto algunas rarezas con ciertos SO y FS. Aunque, no siempre es parte del OS / FS; A veces, las rarezas son el resultado de intentar portar una herramienta de un sistema operativo a otro y luego tratar de ajustarla para la nueva plataforma (las diferencias en el campo CTIME entre EXT y FAT / NTFS, por ejemplo) y cómo NTFS implementa diferentes tipos de "enlaces" (enlaces de shell, puntos de análisis, etc.), lo que dificulta la definición exacta y uniforme.
CM

1
Nota adicional: el tamaño del archivo para un directorio es solo el tamaño de los metadatos del directorio, no el tamaño total de los archivos en el directorio.
wisbucky

31

En los sistemas GNU, se describe en la lspágina de información de manera muy detallada. Todo lo que tenía que hacer para encontrarlo: basta con abrir man lsy encontrar en el enlace extremo a la documentación completa: info coreutils 'ls invocation'.

Aquí hay una cita de él:

`-l'
`--format=long'
`--format=verbose'
     In addition to the name of each file, print the file type, file
     mode bits, number of hard links, owner name, group name, size, and
     timestamp (*note Formatting file timestamps::), normally the
     modification time.  Print question marks for information that
     cannot be determined.

     Normally the size is printed as a byte count without punctuation,
     but this can be overridden (*note Block size::).  For example, `-h'
     prints an abbreviated, human-readable count, and
     `--block-size="'1"' prints a byte count with the thousands
     separator of the current locale.

     For each directory that is listed, preface the files with a line
     `total BLOCKS', where BLOCKS is the total disk allocation for all
     files in that directory.  The block size currently defaults to 1024
     bytes, but this can be overridden (*note Block size::).  The
     BLOCKS computed counts each hard link separately; this is arguably
     a deficiency.

     The file type is one of the following characters:

    `-'
          regular file

    `b'
          block special file

    `c'
          character special file

    `C'
          high performance ("contiguous data") file

    `d'
          directory

    `D'
          door (Solaris 2.5 and up)

    `l'
          symbolic link

    `M'
          off-line ("migrated") file (Cray DMF)

    `n'
          network special file (HP-UX)

    `p'
          FIFO (named pipe)

    `P'
          port (Solaris 10 and up)

    `s'
          socket

    `?'
          some other file type

     The file mode bits listed are similar to symbolic mode
     specifications (*note Symbolic Modes::).  But `ls' combines
     multiple bits into the third character of each set of permissions
     as follows:

    `s'
          If the set-user-ID or set-group-ID bit and the corresponding
          executable bit are both set.

    `S'
          If the set-user-ID or set-group-ID bit is set but the
          corresponding executable bit is not set.

    `t'
          If the restricted deletion flag or sticky bit, and the
          other-executable bit, are both set.  The restricted deletion
          flag is another name for the sticky bit.  *Note Mode
          Structure::.

    `T'
          If the restricted deletion flag or sticky bit is set but the
          other-executable bit is not set.

    `x'
          If the executable bit is set and none of the above apply.

    `-'
          Otherwise.

     Following the file mode bits is a single character that specifies
     whether an alternate access method such as an access control list
     applies to the file.  When the character following the file mode
     bits is a space, there is no alternate access method.  When it is
     a printing character, then there is such a method.

     GNU `ls' uses a `.' character to indicate a file with an SELinux
     security context, but no other alternate access method.

     A file with any other combination of alternate access methods is
     marked with a `+' character.

¡Gracias! No estaba seguro sobre el significado del "archivo especial de caracteres" de la c en la primera columna al enumerar/dev/
Bruno Bronosky

3

La primera columna es el modo de archivo, la siguiente columna son los números de enlace que tiene el archivo, la tercera y la cuarta son el nombre del propietario y el grupo al que pertenece el archivo. La siguiente columna dice el número de bytes del archivo (algunas lsimplementaciones tienen la -hopción de ver esta información en una forma más fácil de usar). Las dos últimas columnas indican la marca de tiempo y el nombre del archivo. Leerías la página del manual para más información.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.