Estoy tratando de aprender los comandos básicos de Linux y no puedo entender lo que significa la segunda columna en la salida de ls-l. ¿Alguien puede explicarlo?

Déjame explicarte. Trataré de explicar cada opción.

El primer campo podría ser

para Archivo, d para Directorio, l para Enlace

Los campos segundo, tercero y cuarto

Esos son permisos que significa leer, escribir y ejecutar, y viene en tres campos diferentes que pertenecen al permiso:

  • segundo: el propietario tiene sobre el archivo
  • tercero: el grupo tiene sobre el archivo
  • cuarto: todos los demás tienen sobre el archivo

El quinto campo

Este campo especifica el número de enlaces o directorios dentro de este directorio.

El sexto campo es el usuario.

El usuario que posee el archivo o directorio

El séptimo campo es el grupo.

El grupo al que pertenece el archivo, y cualquier usuario en ese grupo tendrá los permisos otorgados en el tercer campo sobre ese archivo.

El octavo campo

El tamaño en bytes, puede modificar esto usando la opción -h junto con -l, esto tendrá la salida en k, M, G para una mejor comprensión.

El noveno campo

La fecha de la última modificación.

El décimo campo

El nombre del archivo.

Y eso es todo, espero que ahora entiendas mejor la salida del ls -l .

Considere una salida de muestra del comando ls -l.

-rwxrw-r– 1 raíz raíz 2048 13 de enero 07:11 afile.dat

El resultado anterior se desglosa en las siguientes columnas:

  1. Permisos de archivo
  2. Numero de enlaces
  3. Nombre del dueño
  4. Grupo de propietarios
  5. Tamaño del archivo
  6. Hora de la última modificación, y
  7. Nombre de archivo / directorio

El número de enlaces no es más que el recuento de enlaces duros que se refieren a este archivo en particular. Entonces, la respuesta a la pregunta “¿hay alguna otra entrada de directorio que se vincule a este archivo y, de ser así, cuántas?” se puede responder simplemente ejecutando ls -l para este archivo y verificando la columna de conteo de enlaces. Si es solo 1, eso significa que esta es la única instancia. Si es mayor que 1, entonces hay otras entradas de directorio vinculadas a ese mismo archivo.

Editar: Gracias Jim Dennis por señalar que solo cuentan con enlaces duros. Había mencionado erróneamente enlaces duros y blandos.

Consideremos una lista de archivos con ls -l :

drwxr-xr-x 16 personal de mattia 544 3 de junio 20:26 VM VirtualBox

-rwxr-x— 1 personal de mattia 428 12 de febrero 18:01 allintitle.bash

-rwxr-x— 1 personal de mattia 305 24 de abril 21:32 copier.bash

-rw-r – r– 1 personal de mattia 314 23 de febrero 21:36 demo.c

-rwxr-x— 1 personal de mattia 940 6 de febrero 18:54 domains.bash

¿Qué significa este desastre?

Debe dividir la primera parte en varios componentes.

El primer dígito más a la izquierda representa el tipo de archivo.

Todo es un archivo en Linux, incluidos los dispositivos, ¿verdad?

Puedes ver aquí dos tipos de archivos diferentes:

  • “-“ (sin comillas, por supuesto) indica un archivo normal (lo que significa cualquier tipo de archivo: texto / documento de Word, archivo de imagen, video, etc.);
  • d indica un directorio

También hay otros tipos de archivos, como l (enlace), s (socket), etc., pero estos son los más comunes.

Pasemos ahora a los siguientes nueve dígitos.

En Linux, cada archivo tiene permisos específicos, que se muestran con referencia a tres grupos diferentes de usuarios:

  1. El usuario propietario del archivo ( mattia, en este caso)
  2. El grupo al que pertenece el usuario ( personal , en este caso)
  3. Cualquier otro usuario en esa computadora (incluidos los usuarios abusivos).

Cada grupo tiene permisos específicos, indicados con una letra:

  1. r (leer), que vale 4
  2. w (escribir), que vale 2
  3. x (ejecutar), que vale 1.

Cuando un permiso no está asignado, se reemplaza por un guión.

Ahora, si considera el primer archivo en la lista, puede decir que es un directorio ( d ). El usuario al que pertenece tiene permisos de lectura, escritura y ejecución, el grupo al que pertenece ( personal ) tiene permisos de lectura y ejecución (observe el “-” donde se supone que está una “w”), y todos los demás usuarios tienen leer y ejecutar permisos, también.

Los permisos se pueden representar con un número de 3 dígitos.

Con referencia al primer archivo en la lista anterior, como el propietario (primeros tres dígitos) tiene permisos de lectura, escritura y ejecución, obtenemos 4 ( lectura) +2 (escritura) +1 (ejecución) = 7 para ese usuario. Su grupo ( personal) tiene 4 (leer) +1 (ejecutar) = 5 y todos los demás usuarios tienen 4 + 1 = 5.

Entonces, los permisos generales para ese archivo son iguales a 755 , es decir, control total para el propietario (rwx) , escribir y ejecutar para su grupo (rx) , escribir y ejecutar para todos los demás usuarios (rx) .

Lo mismo es válido para los otros archivos.

Con referencia al segundo archivo que se muestra arriba, es un archivo normal (“-“), que tiene 740 permisos (el tercer grupo de usuarios no tiene ningún permiso).

Espero que esto te lo haga mucho más claro.

Ese sería el recuento de enlaces a su archivo o directorio. Puede consultar las páginas de manual (man ls) y proporcionará la documentación para ese comando. Para obtener una explicación más detallada, consulte ¿Qué significan los campos en ls -al output?