Если ls перечисляет содержимое текущего каталога, существует ли аналогичная команда, которая выводит содержимое не текущего каталога без использования cd?
После ls
просто введите путь к каталогу, который вы хотите перечислить, и вы получите его. Представьте, что вы находитесь в своем домашнем каталоге, но хотите перечислить /etc
. Просто бегите, ls /etc
и вы получите его в списке.
ls
сделаю это.
Синтаксис для ls
:
ls flags file-or-directory-names
Для того, что я звоню file-or-directory-names
, вы можете перечислить файлы в текущем каталоге, чтобы были перечислены только определенные файлы. Например, ls -l foo bar
будет перечислять информацию только foo
и в bar
(в полной форме, как я дал -l
флаг). ls baz*go
перечислит все файлы, имена которых начинаются с baz
и заканчиваются go
(если есть).
Но когда вы даете имя каталога , чтобы ls
она перечисляет содержимое этого каталога вместо текущего каталога.
Итак, чтобы просмотреть содержимое /var/log
, вы просто запустите:
ls /var/log
Если вы укажете относительный путь к каталогу, то есть тот, который не начинается с, то /
он будет искать этот каталог внутри текущего каталога (так же, как он ищет файлы). Но он по-прежнему будет перечислять содержимое каталога, как вы хотите.
Как примечание, иногда вы можете обнаружить, что не хотите перечислять содержимое каталога, а просто перечислите каталог так же, как и файл. Для этого вы можете передать -d
флаг. Например, это показывает /var/log
в полной форме (не его содержимое , а /var/log
само):
ls -ld /var/log
ls
не несет ответственности за расширениеbaz*go
до всех файлов, которые начинаютсяbaz
и заканчиваютсяgo
- это оболочка, которая делает это.ls baz*go
это примерls
получения (потенциально) нескольких аргументов дляfile-or-directory-names
(и таким образом аналогичноls foo bar
).