%3F.png)
Si ls enumera el contenido del directorio actual, ¿existe un comando similar que enumere el contenido de un directorio no actual, sin usar cd?
Respuesta1
Después, ls
simplemente escriba la ruta del directorio que desea enumerar y lo obtendrá. Imagine que está en su directorio personal pero desea incluirlo en la lista /etc
. Simplemente ejecútelo ls /etc
y lo aparecerá en la lista.
Respuesta2
ls
hará esto.
La sintaxis para ls
es:
ls flags file-or-directory-names
Por lo que estoy llamandofile-or-directory-names
, puede enumerar archivos en el directorio actual, para tener solo ciertos archivos en la lista. Por ejemplo, ls -l foo bar
enumerará información sobre solo foo
y bar
(en formato largo, como le he dado la -l
bandera). ls baz*go
enumerará todos los archivos cuyos nombres comienzan baz
y terminan con go
(si los hay).
Pero cuando das unnombre del directorioa ls
, enumera el contenido deese directorioen lugar del directorio actual.
Entonces, para enumerar el contenido de /var/log
, simplemente ejecutaría:
ls /var/log
si le das unrelativoruta para el directorio, es decir, una que no comience con a /
, entonces buscará ese directorio dentro del directorio actual (tal como busca archivos). Pero aún incluirá la listacontenidodel directorio, como quieras.
Como nota al margen, a veces es posible que no desees enumerar loscontenidode un directorio, pero simplemente enumere el directorio de la misma manera que se enumeraría un archivo. Para hacer esto, puedes pasar la -d
bandera. Por ejemplo, esto se muestra /var/log
en forma larga (no en sucontenido, pero /var/log
sí mismo):
ls -ld /var/log
Respuesta3
Habiendo visto la respuesta aceptada, todavía no estaba satisfecho. ¿Cómo supo Daniel la solución? Puedes apostar que yo mismo leí la página de manual y todavía no pude entender cómo.
La página de manual de ls
lee:
Descripción: Muestra información sobre los ARCHIVOS (el directorio actual de forma predeterminada)...
Nada útil allí. Luego revisé el Manual del programador de POSIX:
Para cada operando que nombra un archivo de tipo directorio, ls escribirá los nombres de los archivos contenidos dentro del directorio, así como cualquier información asociada solicitada.
Esta línea explica el comportamiento del comando en la solución aceptada. El FILE
operando de ls
CAN ser un directorio y ls
enumerará el contenido de ese directorio. Exactamente lo que quería el OP. PERO la implementación en Linux puede diferir de la especificación aquí. Así que estamos en el camino correcto, pero todavía no hemos llegado a ese punto.
Luego busqué el manual del coreutils
paquete GNU, del cual ls
forma parte. Esto es lo que encontré:
Para argumentos de línea de comandos que no son opciones y que son directorios, de forma predeterminada, ls enumera el contenido de los directorios...
Esto lo explica.