Tendo a seguinte estrutura simples:
project
main
aaa
aaa
test
ddd
ddd
pom.xml <--- unique regular file
Se o diretório atual for project
e se for executado o ls
comando aparecerá
main pom.xml test
Até aqui está tudo bem. Agora, de acordo com man ls
a d
opção existe:
-d, --directory
list directories themselves, not their contents
Assim quando é executado o ls -d
comando aparece:
.
Por que? Para ser honesto, eu esperava apenas os diretórios e não os arquivos normais. Como
main test
Pergunta
- Como funciona exatamente a
d
opção do comando?ls
Pergunta extra :
- O que seu conteúdo não significa exatamente? É uma questão do conteúdo interno de cada diretório?
Normalmente, quando você
ls
cria um diretório, o conteúdo do diretório é mostrado.por exemplo, no seu exemplo:
Se você usar o
-d
sinalizador, o próprio diretório será listadoIsso parece chato até você olhar para coisas como curingas:
Podemos ver que a cada diretório correspondente obtemos uma lista dos arquivos nesses diretórios.
Mas com isso
-d
obtemos apenas os nomes dos diretórios e não os arquivos dentro dos diretórios.ls -d
trata-se de não percorrer mais os diretórios.ls
sem nenhum argumento é equivalente als .
, e é por isso que você vê apenas.
como saída. Como exemplo de como pode ser usado:Isso pode ser particularmente útil se você quiser examinar alguns dos metadados do diretório, por exemplo, com
ls -ld
.Você está fazendo uma pergunta muito ampla. Mas a resposta curta para sua perplexidade é: o argumento padrão para
ls
(quando nenhum é especificado) é.
. Ao executarls
sem opções, você obtém o conteúdo de.
. Quando você correls -d
, você consegue.
.