¿Cómo puedo enumerar los archivos en otro directorio (no actual)?

¿Cómo puedo enumerar los archivos en otro directorio (no actual)?

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, lssimplemente 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 /etcy lo aparecerá en la lista.

Respuesta2

lshará esto.

La sintaxis para lses:

 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 barenumerará información sobre solo fooy bar(en formato largo, como le he dado la -lbandera). ls baz*goenumerará todos los archivos cuyos nombres comienzan bazy 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 -dbandera. Por ejemplo, esto se muestra /var/logen forma larga (no en sucontenido, pero /var/logsí 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 lslee:

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 FILEoperando de lsCAN ser un directorio y lsenumerará 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 coreutilspaquete GNU, del cual lsforma 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.

información relacionada