Header Ads



Comandos Linux: Comando ls -a -l -i -R -F -d -s con ejemplos descriptivos

Comando ls Unix con ejemplos - Comandos Linux

Comando ls Linux: Listar el contenido de una carpeta

El comando ls es un comando de Shell Linux externo (tales como el comando find y otros), que nos permite visualizar o listar el contenido de una carpeta sobre la salida estándar (pantalla o terminal del Shell). El contenido de una carpeta puede ser un archivo o una colección de diferentes tipos de archivos: archivos ordinarios, directorios o carpetas, enlaces simbólicos, etc.

Sintaxis general del comando ls en Linux:

ls [opción] [argumento: fichero o directorio] 

Notas sobre el uso del comando ls:

  • Si el argumento que pasamos al comando ls es un fichero entonces el objetivo del comando será verificar la existencia de ese fichero. Si existe el fichero nos lo va a listar sobre la terminal sino nos reenviará un mensaje de error.
  • Al contrario si el argumento del comando es un directorio entonces nos listará el contenido de ese mismo directorio.
  • Más de nombrar el contenido de un directorio, el comando ls nos ofrece muchas funciones e informaciones detalladas sobre ese contenido, tales como los permisos o privilegios de administración de los ficheros, sus ínodos, su propietario, datos sobre la fecha de creación, tamaño, etc. Todo esto lo vamos a intentar ver en el tutorial de este artículo con buenos ejemplos detallados y fáciles de entender... o eso espero 😉.

Ejemplos sobre el comando ls:

Ejemplo 1:

 Suponemos que existe el fichero "nombre_archivo.txt" en el directorio actual:
$ ls nombre_archivo.txt
nombre_archivo.txt
Lo  que hace este comando es verificar la existencia del archivo nombre_archivo.txt en la carpeta actual e imprimir su nombre en la salida estándar. 

Ejemplo 2:

➤ Suponemos que en la carpeta corriente existen dos archivos (archivo.c y script.sh) y una carpeta llamada Cursos:
$ ls
archivo.c script.sh Cursos/
En el comando del ejemplo anterior hemos ejecutado el ls sin ningún argumento, es decir sin especificar ningún archivo ordinario o carpeta. En este caso, el argumento por defecto será el directorio corriente.
Ten en cuenta que el comando "ls" sin ningún argumento equivale a "ls .". El punto equivale al directorio corriente.

Las opciones más utilizadas del comando ls:


  1. La opción -l: Cuando ejecutamos "ls -l" obtenemos en el resultado una información mas detallada con sobre cada uno de los ficheros (tipo de cada fichero, protección, número de enlaces que apunten a cada archivo, propietario, grupo, tamaño y la fecha de la última modificación).
  2. La opción -a: Ejecutando "ls -a" visualizamos en el resultado todos los archivos incluyendo los archivos ocultos. Los archivos ocultos empiezan con un punto.
  3. La opción -i: Con "ls -i" se imprimirá el número del ínodo de cada archivo.
  4. La opción -R: "ls -R" imprimirá el contenido de una carpeta y de sus sub-carpetas de forma recursiva. 
  5. La opción -s: Con "ls -s" se  visualiza el tamaño de cada archivo en Ko.
  6. La opción -F: Con "ls -F" se visualizan algunos símbolos justo después de cada archivo o carpeta: "/" si es una carpeta, "*" si un fichero tiene los permisos de ejecución y "@" si es un archivo enlace (o enlace simbólico).
  7. La opción -d: con "ls -d", si el parámetro es el nombre de un directorio verifica su existencia sin descender y imprimir su contenido.

Ejemplos:

➔ Suponemos que la carpeta corriente contiene la sub-carpeta «rep», los archivos: «fich1», «fich2» y«fich3».
➔ Suponemos que la sub-carpeta  « rep » contiene los archivos «fich » y « fich4 ».

Ejemplo de ls sin ningún argumento y ninguna opción:

$ ls
rep fich1 fich2 fich3

Ejemplo de ls -a:

$ ls -a

. .. .perfil rep fich1 fich2 fich3
En el resultado de este ejemplo observamos que hay algunos ficheros que no aparecían con solo el comando "ls", son "." , ".." y ".perfil", estos ficheros son ficheros ocultos y ahora son visibles gracias a la opción -a.

Para explicar más: el "." es un enlace simbólico que apunta al directorio actual, es decir con el comando "cd ." nos quedamos en el mismo directorio;  el ".." es también un enlace simbólico y apunta al directorio padre del directorio actual, es decir con "cd .." podemos ir un nivel atrás en la jerarquía del sistema de ficheros; y por último ".perfil" es un archivo o directorio oculto.

Ejemplo de ls -F:

$ ls -F
rep/ fich1 fich2* fich3@
Con ejecutar el comando "ls -F" y observar el resultado concluimos que:
  • "rep" es un directorio y la razón es la "/".
  • "fich2" es un fichero que se puede ejecutar y tiene permiso de ejecución y la razón es el "*".
  • "fich3" es un enlace simbólico y la razón es el "@".

Ejemplo de ls -R:

$ ls -R
rep fich1 fich2 fich3
./rep:
fich4 fich5
Observando el resultado, concluyemos que la opción -R nos permite ver (de forma recursiva) el contenido de la carpeta actual y el contenido de sus sub-carpetas. En este caso, la carpeta actual contiene la sub-carpeta "rep" que a su vez contiene dos ficheros "fich4" y "fich5".

Ejemplo de ls -d:

$ ls -d rep
rep
En este último ejemplo, verificamos la existencia de la carpeta "rep" en le directorio actual. Notamos también que no se imprime el contenido de la carpeta "rep", sólo su nombre. 

Ejemplo de ls -l: 

$ ls -l /
total 96
drwxr-xr-x   2 root root  4096 avr 14 10:21 bin
drwxr-xr-x   3 root root  4096 avr 16 01:22 boot
lrwxrwxrwx   1 root root    11 jun  1  2008 cdrom -> media/cdrom
drwxr-xr-x  15 root root 14720 avr 18 08:48 dev
drwxr-xr-x   3 root root  4096 jun  1  2008 emul
drwxr-xr-x 140 root root 12288 avr 18 09:05 etc
drwxr-xr-x   5 root root  4096 avr 10 15:10 home
drwxr-xr-x   2 root root  4096 jun  1  2008 initrd
lrwxrwxrwx   1 root root    34 avr  3 19:04 initrd.img -> boot/initrd.img-2.6.29.1-vanilla64
lrwxrwxrwx   1 root root    34 mar 24 08:05 initrd.img.old -> boot/initrd.img-2.6.28.9-vanilla64
drwxr-xr-x  14 root root  4096 avr 17 11:02 lib
lrwxrwxrwx   1 root root    20 jun  1  2008 lib32 -> /emul/ia32-linux/lib
lrwxrwxrwx   1 root root     4 jun  1  2008 lib64 -> /lib
drwx------   2 root root 16384 jun  1  2008 lost+found
drwxr-xr-x   7 root root  4096 avr 18 08:41 media
drwxr-xr-x   5 root root  4096 mar 24 15:14 mnt
drwxr-xr-x   3 root root  4096 avr  7 11:49 opt
dr-xr-xr-x 145 root root     0 avr 18 08:41 proc
drwxr-xr-x  22 root root  4096 avr 17 10:17 root
drwxr-xr-x   2 root root 12288 avr 17 11:02 sbin
drwxr-xr-x   7 root root     0 avr 18 08:41 selinux
drwxr-xr-x   3 root root  4096 jun  1  2008 srv
drwxr-xr-x  12 root root     0 avr 18 08:41 sys
drwxrwxrwt   9 root root  4096 avr 18 10:38 tmp
drwxr-xr-x  11 root root  4096 déc 15 22:37 usr
drwxr-xr-x  14 root root  4096 fév 17 20:57 var
lrwxrwxrwx   1 root root    31 avr  3 19:04 vmlinuz -> boot/vmlinuz-2.6.29.1-vanilla64
lrwxrwxrwx   1 root root    31 mar 24 08:05 vmlinuz.old -> boot/vmlinuz-2.6.28.9-vanilla64
En este ejemplo hay mucho que explicar. Pero en general el comando "ls -l" nos ofrece una información más detallada. -l equivale a long en inglés que significa largo, es decir una información larga. El "/" representa a la carpeta raíz de la jerarquía del sistema de ficheros de Linux. En este ejemplo vemos una información detallada sobre los archivos principales del sistema operativo menos los archivos o directorios ocultos.

No voy a entrar en mucho detalle sobre las explicación de estas líneas porqué necesitaría un artículo independiente y completo y porque el comando "ls -l" es uno de los más usados y más importantes que hay que llevarlo bien entendido. 

1 comentario:

  1. Os explico de forma detallada y muy clara el comando ls de Linux y todas sus opciones.

    ResponderEliminar

Con la tecnología de Blogger.