Entendendo ls * / -d

1

* significa todos os arquivos e diretórios, incluindo arquivos em sub-diretórios.

/ significa no diretório raiz

ls */ traz arquivos em sub-diretórios no diretório atual (não inclui arquivos no diretório atual)

ls -d listam entradas de diretório em vez de conteúdo. Meu diretório cheio de arquivos e subdiretórios. Por que no meu caso isso traz apenas ./ ?

Ao adicionar todos juntos, eu tenho ls */ -d . Traz todos os diretórios no diretório atual. Qual é a lógica dessa combinação? Se eu pegar partes separadas deste comando, ele não traz esse resultado.

    
por vico 21.11.2016 / 10:53

1 resposta

6

/ não significa diretório raiz. É um separador de caminho. Se o caminho começa com / , então, é claro, você tem um caminho absoluto, que começa no nível raiz. Aqui, a barra vem depois de * . O asterisco contém todas as entradas do diretório atual, mas aqui, o padrão é */ : everything no diretório atual que termina em / ; os arquivos não terminam em / , mas terminar um caminho com uma barra significa que você especificou um diretório, portanto isso significa apenas diretórios. Compare com *.txt , o que significaria todas as entradas terminadas em .txt .

    
por 21.11.2016 / 11:06