Como posso listar os arquivos em outro diretório (não atual)?

10

Se ls listar o conteúdo do diretório atual, existe um comando semelhante que lista o conteúdo de um diretório não atual, sem usar cd?

TifatulS
fonte

Respostas:

12

Depois lsbasta digitar o caminho do diretório que você deseja listar e você o receberá. Imagine que você está no diretório inicial, mas deseja listar /etc. Basta executar ls /etce você será listado.

Daniel Yuste Aroca
fonte
6

ls vai fazer isso.

A sintaxe para lsé:

 ls flags file-or-directory-names

Pelo que estou chamando file-or-directory-names, você pode listar arquivos no diretório atual, para ter apenas alguns arquivos listados. Por exemplo, ls -l foo barlistará informações sobre just fooe bar(em formato longo, como forneci a -lflag). ls baz*golistará todos os arquivos cujos nomes começam baze terminam com go(se houver).

Mas quando você der um nome de diretório para ls, ele lista o conteúdo desse diretório em vez do diretório atual.

Então, para listar o conteúdo de /var/log, você simplesmente executaria:

ls /var/log

Se você fornecer um caminho relativo para o diretório - ou seja, um que não comece com /-, procurará esse diretório dentro do diretório atual (assim como procura por arquivos). Mas ainda listará o conteúdo do diretório, como você desejar.

Como uma observação lateral, às vezes você pode achar que não deseja listar o conteúdo de um diretório, mas apenas liste o diretório da mesma forma que um arquivo seria listado. Para fazer isso, você pode passar a -dbandeira. Por exemplo, isso é exibido /var/logem formato longo (não seu conteúdo , mas /var/logele próprio):

ls -ld /var/log
Eliah Kagan
fonte
Muito detalhado. No entanto, lembre-se de que lsnão é responsável pela expansão baz*gopara todos os arquivos que começam baze terminam com go- é o shell que faz isso.
krlmlr
@krlmlr Certo, ls baz*goé um exemplo de lsrecebimento (potencialmente) de vários argumentos para file-or-directory-names(e dessa maneira é semelhante a ls foo bar).
Eliah Kagan 23/03