Cómo utilizar el comando ls para enumerar archivos y directorios en Linux

Cómo utilizar el comando ls para enumerar archivos y directorios en Linux

Conclusiones clave

  • El comando ls es una herramienta poderosa que se puede utilizar para enumerar archivos y directorios.
  • Hay muchas opciones y parámetros útiles para ls que pueden mejorar su funcionalidad y hacerlo más cómodo de usar.
  • ls -la es un buen comando si desea ver todo lo que hay en una carpeta.

Usamos el lscomando de Linux todos los días sin pensar en ello. Eso es una lástima. Préstele atención y encontrará muchas opciones útiles, incluidas algunas que debería agregar a su arsenal de línea de comandos.

ls enumera archivos y directorios

El lscomando es probablemente el primer comando que encuentran la mayoría de los usuarios de Linux. Aquellos de nosotros que rondamos por la línea de comandos la usamos día tras día sin siquiera pensar en ello. Eso podría explicar por qué hay más en este comando de lo que la mayoría de los usuarios creen. Enumeramos archivos con él para ver qué hay en un directorio. Enumeramos archivos en formato largo cuando queremos ver los permisos de un archivo. Más allá de eso, recibe poca consideración.

El lscomando es uno de esos comandos con una gran cantidad de opciones. Quizás esto sea parte del problema. Hay tantas opciones, ¿cómo las examinas para encontrar las útiles? Y habiéndolos encontrado, ¿cómo los recuerdas?

Las permutaciones útiles del lscomando con sus cadenas de opciones y parámetros son los candidatos perfectos para alias . De hecho, en la mayoría de las distribuciones, lo que usted considera el lscomando “desnudo” es en realidad un alias. Entre otras cosas, el tipo lstype command can be used to show the underlying definition of aliases. Let's look at the definition of ls:

escriba ls en una ventana de terminal

Los --color=auto parámetros se incluyen automáticamente cada vez que utiliza el lscomando. Esto es lo que proporciona los diferentes colores para los diferentes tipos de archivos en los listados.

Listados ls simples

Cualquiera que haya pasado algún tiempo usando la terminal Linux sabe que, de forma predeterminada, lsenumera los archivos y directorios en el directorio actual.

ls

ls en una ventana de terminal

Si desea que su listado se produzca en una sola columna, use la -1opción (un archivo por línea):

ls -1

ls -1 en una ventana de terminal

Discutiremos ese nombre de archivo de aspecto extraño en la parte superior de la lista en un minuto.

Usando ls en diferentes directorios

Para lsenumerar los archivos en un directorio que no sea el directorio actual, pase la ruta al directorio lsen la línea de comando. También puede pasar más de un directorio lsy enumerarlos uno tras otro. Aquí, solicitamos lsenumerar los archivos en dos directorios, uno llamado «Ayuda» y el otro llamado «gc_help».

ls Help gc_help

ls Ayuda gc_help en una ventana de terminal

Cuando lsha enumerado el contenido del primer directorio, enumera el contenido del segundo. Imprime el nombre de cada directorio a medida que los procesa:

Nombre del directorio que muestra ls antes de que se enumeren los contenidos.

Usar patrones de archivos

Para enumerar selectivamente un conjunto de archivos, utilice la coincidencia de patrones. El signo de interrogación “ ?“representará cualquier carácter y el asterisco “ *“representará cualquier cadena de caracteres. Para enumerar cualquier archivo o directorio que tenga nombres que comiencen con “ip_”, utilice este formato:

ls ip_*

ls ip_* en una ventana de terminal

Para enumerar archivos que tienen extensiones “.c”, utilice este formato:

ls *.c

ls *.c en una ventana de terminal

También puede utilizar lswith grepy utilizar las capacidades de coincidenciagrep de patrones . Busquemos cualquier archivo que tenga la cadena “_pin_” en su nombre:

ls | grep _pin_

ls |  grep _pin_ en una ventana de terminal

Esto es casi lo mismo que usarlo lssolo, con dos comodines:

ls | grep _pin_ ls *_pin_*

ls |  grep _pin_ en una ventana de terminal

¿Por qué casi lo mismo? Tenga en cuenta los diferentes diseños. grepfuerza la salida a un solo nombre de archivo por formato de línea.

Caracteres no imprimibles

Es posible encontrarse con un nombre de archivo que tenga un carácter de control o no imprimible en su nombre de archivo. Normalmente, esto puede suceder cuando expandes un archivo que descargaste de la web o recuperaste un repositorio git , y el autor original cometió un error al crear un archivo pero no lo detectó.

Nuestro archivo extraño es uno de estos:

Nombre de archivo con carácter de control en una ventana de terminal

Si lo miramos en el explorador de archivos y pulsamos “F2″ para cambiarle el nombre, los caracteres que no se imprimen se representan mediante un símbolo extraño.

Nombre de archivo con un carácter de control, en la ventana de diálogo de cambio de nombre

Puede utilizar la -bopción (escape) para permitirle ver qué contiene realmente el nombre del archivo. Esta opción hace lsque se utilicen las secuencias de escape del lenguaje de programación C para representar los caracteres de control.

ls -b a*

ls -ba* en una ventana de terminal

Se revela que el misterioso personaje es un carácter de nueva línea, representado en C como «\n».

Ignorar archivos

Para omitir ciertos archivos de una lista, use la --hideopción. Supongamos que no desea ver los archivos de respaldo “.bak” en la lista. Podrías usar este comando:

ls ls --hide=*.bak

ls --hide=*.bak en una ventana de terminal

Los archivos “.bak” no están incluidos en el segundo listado.

El listado de formato largo

La -lopción (lista larga) hace lsque se proporcione información detallada sobre cada archivo.

ls -l

ls -l en una ventana de terminal

Hay mucha información aquí, así que repasémosla.

Lo primero que lsse muestra es el tamaño total de todos los archivos del listado. Luego, cada archivo o directorio se muestra en una línea por sí solo.

El primer conjunto de diez letras y guiones son el tipo de archivo y el propietario, grupo y otros permisos de archivo.

El primer carácter representa el tipo de archivo. Será uno de:

  • : Un archivo normal.
  • b : Un archivo especial de bloque.
  • c : Un archivo de caracteres especiales.
  • d : Un directorio.
  • l : Un enlace simbólico.
  • n : un archivo de red.
  • p : Una tubería con nombre.
  • s : Un enchufe.

Los siguientes nueve caracteres son tres grupos de tres caracteres que se muestran de forma contigua. Cada grupo de tres representa los permisos de lectura, escritura y ejecución, en ese orden. Si se concede el permiso, habrá un r, wo xpresente. Si no se concede el permiso, -se muestra un guión.

El primer conjunto de tres caracteres son los permisos del propietario del archivo. El segundo conjunto de tres permisos es para los miembros del grupo y el último conjunto de tres permisos es para otros.

A veces, el permiso de ejecución para el propietario está representado por un archivo s. Este es el bit setuid . Si está presente, significa que el archivo se ejecuta con los privilegios del propietario del archivo, no del usuario que ejecuta el archivo.

El permiso de ejecución para el grupo también puede ser un archivo s. Este es el bit setgid . Cuando esto se aplica a un archivo, significa que el archivo se ejecutará con los privilegios del grupo del propietario. Cuando se usa con un directorio, cualquier archivo creado dentro de él tomará sus permisos de grupo del directorio en el que se crean, no del usuario que está creando el archivo.

El permiso de ejecución para los demás a veces puede representarse mediante un archivo t. Esta es la parte pegajosa . Suele aplicarse a directorios. Si se establece esto, independientemente de los privilegios de escritura y ejecución establecidos en los archivos del directorio, solo el propietario del archivo, el propietario del directorio o el usuario raíz pueden cambiar el nombre o eliminar archivos del directorio.

Un uso común del bit adhesivo es en carpetas como “/tmp”. Todos los usuarios de la computadora pueden escribir en esto. La parte adhesiva del directorio garantiza que los usuarios (y los procesos iniciados por los usuarios) sólo puedan cambiar el nombre o eliminar sus propios archivos temporales.

Podemos ver el bit adhesivo en el directorio «/tmp». Tenga en cuenta el uso de la -dopción (directorio). Esto hace lsque se informe sobre los detalles del directorio. Sin esta opción, lsinformará sobre los archivos dentro del directorio.

ls -l -d /tmp

ls -l -d /tmp en una ventana de terminal

El número que sigue a los permisos es el número de enlaces físicos al archivo o directorio. Para un archivo, suele ser uno, pero si se crean otros enlaces físicos, este número aumentará. Un directorio suele tener al menos dos enlaces físicos. Uno es un enlace a sí mismo y el otro es su entrada en su directorio principal.

El nombre del propietario y el grupo se muestran a continuación. Les siguen el tamaño del archivo y la fecha de la última modificación del archivo. Finalmente, se proporciona el nombre del archivo.

Tamaños de archivos legibles por humanos

Tener los tamaños de archivo en bytes no siempre es conveniente. Para ver los tamaños de archivos en las unidades más apropiadas (Kilobytes, Megabytes, etc.), utilice la -hopción (legible por humanos):

ls -l -h

ls -l -h en una ventana de terminal

Mostrar archivos ocultos

Para ver archivos ocultos, use la -aopción (todos):

ls -l -a

ls -l -a en una ventana de terminal

Las dos entradas “.” y “…” representan el directorio actual y el directorio principal, respectivamente. Un archivo llamado «.base_settings» ahora está visible por primera vez.

Omitiendo. y. . de listados

Si no desea que su listado esté lleno de entradas «.» y «…», pero sí desea ver archivos ocultos, use la -Aopción (casi todos):

ls -l -A

ls -l -A en una ventana de terminal

El archivo oculto todavía aparece en la lista, pero las entradas «.» y «…» están suprimidas.

Listado de directorios de forma recursiva

Para lsenumerar los archivos en todos los subdirectorios, utilice la -Ropción (recursiva)

ls -l -R

ls -l -R en una ventana de terminal

lsrecorre todo el árbol de directorios debajo del directorio inicial y enumera los archivos en cada subdirectorio.

salida de ls enumerando directorios recursivamente

Visualización del UID y GID

Para que se muestren el ID de usuario y el ID de grupo en lugar del nombre de usuario y el nombre de grupo, utilice la -nopción (uid numérico y gid).

ls -n

ls -n en una ventana de terminal

Ordenar los listados

Puede ordenar la lista por extensión, tamaño de archivo o hora de modificación. No es necesario utilizar estas opciones con el formato de lista larga, pero normalmente tiene sentido hacerlo. Si está ordenando por tamaño de archivo, tiene sentido ver los tamaños de archivo en la lista. Cuando ordena por tipo de extensión, el formato de lista larga no es tan importante.

Para ordenar por extensión, utilice la -Xopción (ordenar por extensión).

ls -X -1

ls -X -1 en una ventana de terminal

Los directorios se enumeran primero (sin ninguna extensión) y luego el resto sigue en orden alfabético, según las extensiones.

Para ordenar por tamaño de archivo, utilice la -Sopción (ordenar por tamaño de archivo).

ls -l -h -S

ls -l -h -S en una ventana de terminal

El orden de clasificación es de mayor a menor.

Para ordenar el listado por hora de modificación, utilice la -topción (ordenar por hora de modificación).

ls -l -t

ls -l -t en una ventana de terminal

El listado está ordenado por hora de modificación.

Si la hora de modificación del archivo está dentro del año actual, la información que se muestra es el mes, día y hora. Si la fecha de modificación no fue en el año actual, la información que se muestra es el mes, día y año.

Una forma rápida de obtener los archivos más nuevos y más antiguos de un directorio es utilizar lslos comandos heady tail.

Para obtener el archivo o directorio más nuevo, use este comando:

ls -t | head -1

Para obtener el archivo o directorio más antiguo, use este comando:

ls -t | tail -1

ls-t |  head -1 en una ventana de terminal

Para invertir el orden de clasificación

Para revertir cualquiera de los órdenes de clasificación, utilice la -ropción (invertir).

ls -l -h -S -r

ls -l -h -S -r en una ventana de terminal

La lista ahora está ordenada desde el archivo más pequeño hasta el más grande.

Y hay más

Consulte la página de manual ls, hay muchas más opciones . Algunos de ellos satisfacen casos de uso algo oscuros, pero de vez en cuando te alegrará conocerlos.

¿Necesita ver las marcas de tiempo de los archivos con la máxima precisión que Linux puede proporcionar? Utilice la opción de tiempo completo:

ls --full-time

¿Quizás quieras ver el número de inodo de los archivos? Utilice la opción de inodo:

ls -i

¿Está trabajando en una pantalla monocromática y desea eliminar todo riesgo de confundir archivos con directorios y enlaces? Utilice la opción de clasificación y lsagregará uno de estos a cada entrada del listado:

  • / : Un directorio.
  • @ : un enlace simbólico.
  • | : Una tubería con nombre.
  • = : Un enchufe.
  • * : Un archivo ejecutable

ls -F

Investiga un poco. Descubrirás que lses una veta rica y seguirás encontrando gemas.

Comandos de Linux

Archivos

tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · tipo · renombrar · zip · descomprimir · montar · desmontar · instalar · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · parche · convertir · rclone · triturar · srm · scp · gzip · chattr · cortar · buscar · umask · wc · tr

Procesos

alias · pantalla · arriba · nice · renice · progreso · strace · systemd · tmux · chsh · historial · at · lote · gratis · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · tiempo de espera · pared · · matar · dormir · sudo · su · tiempo · agregar grupo · usermod · grupos · lshw · apagar · reiniciar · detener · apagar · contraseña · lscpu · crontab · fecha · bg · fg · pidof · nohup · pmap

Redes

netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *