¿Qué significa `ls --directory`?


17

En mi versión de Ubuntu, man ls tiene la siguiente información sobre --directory:

list directory entries instead of contents, and do not dereference symbolic links

Así que estoy un poco confundido sobre cómo funciona. Usé el comando ls --directoryy esperaba una lista con todos los directorios, pero en su lugar obtuve.

Entonces, ¿qué hace ls --directoryo hace exactamente ls -d?

Respuestas:


24
$ man ls
...
-d, --directory
              list directories themselves, not their contents

El directorio actual se representa .así que eso ls -des lo que se enumera.

Los directorios dentro del directorio actual son contenidos del directorio y, por lo tanto, no se muestran con esta opción.

Uso la -dopción en un alias para mostrar archivos y directorios ocultos

alias l.='ls -dC .* --color'

Sin -desto, también se enumerará el contenido de los directorios ocultos, que no es lo que quiero.

Otro uso es cuando quiero ver los metadatos de un directorio usando la -lopción, no su contenido:

$ ls -ld playground
drwxr-xr-x 72 zanna zanna 12288 Mar  1 23:10 playground

Si desea una lista de directorios en el directorio actual, puede usar

ls -d */

ls -dC .* --colortambién enumera archivos ocultos, no solo directorios.
Pau Chorro

1
sí @PauChorro De hecho, lo digo en mi respuesta. Lo uso para mostrar todos los archivos y directorios ocultos
Zanna

1
@PauChorro Agregué una forma de listar solo directorios
Zanna

1
En mi versión de Ubuntu la man lstiene la siguiente información: list directory entries instead of contents, and do not derefer‐ ence symbolic links. Entonces, en su versión hay una mejor explicación de lo que realmente hace.
Pau Chorro

1
@ Pilot6 también mostrará una lista de archivos
Zanna

11

Usar lssolo con -des casi inútil. Da información sobre el directorio en sí. No enumera su contenido.

Es por eso que no ves una lista de directorios. Los directorios que esperaba ver son los "contenidos" del directorio actual

Si ejecuta simplemente ls -d, muestra el directorio actual por ..

Si tiene sentido ejecutarlo con otras teclas como -l.

ls -ld mostrará los permisos del directorio actual.

pilot6@Pilot6:~$ ls -ld
drwxrwxr-x 1 pilot6 pilot6 2570 Mar  4 12:14 .

También puede ver los permisos de cualquier otro directorio como

ls -ld /bin

pilot6@Pilot6:~$ ls -ld /bin
drwxr-xr-x 1 root root 2584 Feb 25 15:19 /bin

Si ejecuta ls -lsin -dtendrá la lista de todos los permisos para archivos y carpetas en el directorio actual. Si no lo necesita, es un buen ejemplo de ls -lduso.

Puede enumerar directorios en el actual por

ls -d */

6

Usarlo ls -dpor sí solo es bastante inútil porque sin un parámetro siempre regresa .. Sin embargo, después de especificar un parámetro, tiene sentido. Por ejemplo, si su nombre de usuario es ricky desea ver todos los directorios en su uso doméstico:

$ ls -d /home/rick/*/
/home/rick/AAC/        /home/rick/EnhanceIO/         /home/rick/silentcast/
/home/rick/assembly/   /home/rick/EnhanceIO-master/  /home/rick/Templates/
/home/rick/bin/        /home/rick/log/               /home/rick/test/
/home/rick/Desktop/    /home/rick/Music/             /home/rick/tmpe/
/home/rick/Documents/  /home/rick/Pictures/          /home/rick/Videos/
/home/rick/Downloads/  /home/rick/Public/

5

Déjame explicarte con ejemplos:

  1. ls: lista de contenidos de un directorio

  2. ls -do ls --directory: enumerar directorios en sí, no sus contenidos

Ejemplos:

ls -d android-sdk-linux/

# result
android-sdk-linux/

ls android-sdk-linux/

# result
add-ons  build-tools  platforms  platform-tools  SDK Readme.txt  temp  tools

Su caso de ls -dque esto dice a la lista sólo me muestra el directorio que estoy en no su contenido (es decir, .en términos de Linux), por lo que el resultado es: ..

Pero si hubiera dicho:, lsverá todo lo que está presente en el directorio actual ..


4

ls -dEnumerar directorios ellos mismos en lugar de su contenido. Los archivos se enumeran como normales. Consulte la man lsdescripción de todas las opciones.

. es el directorio en sí mismo, el mismo que usa cuando ejecuta un comando desde el directorio actual, ./runscript.sh

..es el directorio padre, el padre de la directora actual, como cd ..para moverse al subir en la jerarquía del directorio

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.