Con la ayuda de ls
comando, los usuarios y superusuarios enumeran información sobre archivos y directorios. Este artículo ayuda al administrador y al usuario a identificar los permisos de archivos, lo cual es útil para el acceso y la solución de problemas básicos.
Usando ls
En su forma más básica, puede usar el ls
comando para ver qué archivos hay en un directorio:Nota:la lista puede estar codificada por colores o no.
[root@centos7 ~]# ls /etc
abrt firewalld makedumpfile.conf.sample rdma
adjtime flatpak man_db.conf redhat-release
aliases fonts maven request-key.conf
aliases.db fprintd.conf mime.types request-key.d
alsa fstab mke2fs.conf resolv.conf
alternatives fuse.conf modprobe.d rhsm
anacrontab gconf modules-load.d rpc
...
Hay muchas banderas disponible para darle más información con su listado de archivos. El más común de usar es -a
(o --all
), ya que le muestra todos los archivos en el directorio, incluidos los que comienzan con un punto (por ejemplo, .bash_logout
).
Otra bandera común es -l
, que le brinda más información sobre los archivos en un directorio, incluidos los permisos, la propiedad y el tamaño del archivo. Si desea saber más fácilmente en qué unidades se encuentra el tamaño de un archivo (por ejemplo, 1K, 234M, 2G), puede agregar -h
(abreviatura de --human-readable
) bandera.
Veamos un ejemplo. Una simple lista de archivos en el directorio del usuario raíz podría ser esta:
[root@name ~]# ls /root
anaconda-ks.cfg
Si desea la versión de formato largo de esta lista (cubriremos la información adicional que se muestra aquí en la siguiente sección):
[root@name ~]# ls -l /root
total 4
-rw-------. 1 root root 896 Feb 22 01:40 anaconda-ks.cfg
Sin embargo, si agrega el -a
bandera, el ls
El comando devuelve una lista abreviada que incluye los elementos ocultos:
[root@name ~]# ls -a /root
. anaconda-ks.cfg .bash_logout .bashrc .cshrc .tcshrc
.. .bash_history .bash_profile .cache .local
Considere el punto único y el punto doble en ambas listas de directorios. El punto único (.
) hace referencia al propio directorio. Este punto es conveniente si desea ejecutar un comando y hacer referencia a su directorio actual (por ejemplo, cuando desea copiar un archivo allí).
Los puntos dobles (..
) se refieren al directorio principal. Si escribes cd ..
sube un escalón en la jerarquía del sistema de archivos. Por ejemplo, si su directorio actual es /root
, escribiendo cd ..
te llevaría a /
, la parte superior de la jerarquía.
Si combina el -a
opción con -l
opción en -la
, obtendrá más detalles sobre los archivos ocultos y no ocultos:
[root@name ~]# ls -la /root
total 44
dr-xr-x---. 4 root root 4096 Feb 11 05:47 .
dr-xr-xr-x. 19 root root 4096 Jul 11 13:15 ..
-rw-------. 1 root root 896 Feb 22 01:40 anaconda-ks.cfg
-rw-------. 1 root root 163 Jul 11 01:18 .bash_history
-rw-r--r--. 1 root root 18 Feb 2 10:37 .bash_logout
-rw-r--r--. 1 root root 176 Feb 2 10:37 .bash_profile
-rw-r--r--. 1 root root 176 Feb 2 10:37 .bashrc
drwx------. 3 root root 4096 Jul 11 01:37 .cache
-rw-r--r--. 1 root root 100 Feb 2 10:37 .cshrc
drwxr-xr-x. 3 root root 4096 Feb 22 01:57 .local
-rw-r--r--. 1 root root 129 Feb 2 10:37 .tcshrc
Descodificación del formato de lista larga
Cuando empiezas a usar el -l
bandera, notará mucha más información. Aquí hay una línea de ejemplo de salida:
drwxrwxr-x 2 root test 4096 Dec 3 2009 test
El primer carácter a la izquierda te dice lo que estás viendo. Si es una d
, como puede ver aquí, eso indica que este archivo es un directorio, que es básicamente un tipo especial de archivo (y se lo denominará archivo en todo momento). Sin embargo, si fuera un guión (-
), eso indicaría que el archivo es un archivo normal.
Si el primer carácter fuera una minúscula l
, entonces este elemento sería un tipo de archivo especial llamado enlace simbólico o enlace suave, que es un puntero (acceso directo) a otra ubicación en el sistema de archivos. Tal listado podría verse así:
lrwxrwxrwx 1 root root 4 Jun 30 03:29 sh -> bash
Después del primer carácter están las abreviaturas de permiso, que se agrupan de tres en tres. Los permisos para archivos están representados por las siguientes letras:
r
por el permiso de lecturaw
por el permiso de escriturax
para el permiso de ejecución
Volviendo a este ejemplo:
drwxrwxr-x 2 root test 4096 Dec 3 2009 test
- El primer triplete (
rwx
) muestra los permisos para el usuario o propietario del archivo. - El siguiente triplete (
rwx
) muestra los permisos para la categoría de grupo. - El último triplete (
r-x
) muestra los permisos para la categoría final, otros.
En este ejemplo, los usuarios que no son propietarios del archivo ni pertenecen al grupo tienen permisos de lectura y ejecución, pero no de escritura, como indica el guión (-
) en la posición media.
El número que aparece después de los permisos indica el enlace count (para un archivo) o el número de entradas de directorio contenidas (para un directorio). Este número no es relevante para los permisos.
Después de este número, el primer nombre indica el propietario del archivo. Los permisos de usuario (primer triplete) se aplican a este propietario, por lo que en este ejemplo, el usuario root
tiene permisos de lectura, escritura y ejecución para este directorio.
El segundo nombre es el grupo del archivo. Los permisos de grupo se aplican a cualquier usuario en el mismo grupo, por lo que en este caso, cualquiera en el mail
el grupo tiene permisos de lectura, escritura y ejecución.
Resumiendo
Ahora debería tener una sensación mucho mejor para obtener información sobre sus archivos desde la línea de comandos. Los ls
El comando tiene muchas más opciones. Escribe man ls
para obtener más información y descubrir sus combinaciones de banderas favoritas para hacer las cosas. Es posible que incluso desee crear algunos alias.