Si ls enumera el contenido del directorio actual, ¿hay un comando similar que enumere el contenido de un directorio no actual, sin usar cd?
Después de lssimplemente escribir la ruta del directorio que desea enumerar y lo obtendrá. Imagina que estás en tu directorio personal pero quieres hacer una lista /etc. Simplemente ejecute ls /etcy lo obtendrá en la lista.
ls Hará esto.
La sintaxis para lses:
ls flags file-or-directory-names
Para lo que estoy llamando file-or-directory-names, puede enumerar archivos en el directorio actual, para que solo se enumeren ciertos archivos. Por ejemplo, ls -l foo barenumerará información sobre just fooy bar(en forma larga, como le he dado a la -lbandera). ls baz*goenumerará todos los archivos cuyos nombres comienzan bazy terminan con go(si corresponde).
Pero cuando se le da un nombre de directorio a ls, se muestra el contenido de ese directorio en lugar del directorio actual.
Entonces, para enumerar el contenido de /var/log, simplemente ejecute:
ls /var/log
Si proporciona una ruta relativa para el directorio, es decir, una que no comience con un, /entonces buscará ese directorio dentro del directorio actual (tal como busca archivos). Pero seguirá enumerando el contenido del directorio, como desee.
Como nota al margen, a veces puede encontrar que no desea enumerar el contenido de un directorio, sino simplemente enumerar 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 su contenido , sino /var/logsí mismo):
ls -ld /var/log
lsno es responsable de expandirbaz*goa todos los archivos que comienzan conbazy terminan congo- es el shell que hace esto.ls baz*goes un ejemplo delsrecibir (potencialmente) múltiples argumentos parafile-or-directory-names(y de esta manera es similar als foo bar).