O que o comando ls -al. * retorna?

5

Mostra nomes de arquivos ocultos em todos os diretórios? Ou apenas o diretório atual (incluindo qualquer diretório dentro dele)? Não consigo entender por que ls -ld .* retorna resultados diferentes (mostra arquivos e diretórios ocultos APENAS no diretório atual, não mostrando arquivos dentro de outro diretório dentro dele)? O que faz -d sozinho ( ls -d )?

    
por BEWARB 05.03.2017 / 14:26

3 respostas

7

ls -al .* mostra o conteúdo de todos os diretórios no diretório atual cujos nomes começam com . (isto é, todos aqueles que correspondem ao shell glob .* )

No Bash, o .* glob resolve também para . e .. . Como . representa o diretório atual e .. o diretório pai, o conteúdo de ambos os diretórios, incluindo todos os arquivos e diretórios ocultos, também é mostrado. 1

.* também captura arquivos ocultos no diretório atual, mas eles são listados como conteúdo de .

Como explicado em O que significa 'ls --directory'? -d flag faz com que os próprios diretórios sejam exibidos, em vez de seu conteúdo.

1 este também é o caso em dash, que é o shell vinculado a sh no Ubuntu. No entanto, outros shells, incluindo zsh e mksh, se comportam de maneira mais intuitiva e não incluem . e .. ao expandir .* . Também vale a pena notar que, enquanto a maioria dos comandos irá operar em .. e . quando eles estão incluídos em um .* glob (incluindo chmod e chown - você pode realmente atrapalhar seu sistema com eles) , o comando rm falhará por design para fazer isso.

    
por Zanna 05.03.2017 / 14:36
2

Ele retornará todos os arquivos ocultos ou arquivos que começam com . nesse diretório. Para visualizar todos os arquivos (incluindo ocultos) em um diretório, use ls -al

    
por Dan Humphreys 05.03.2017 / 14:43
2

Ele listará todos os arquivos + diretórios, incluindo arquivos / diretórios ocultos no diretório atual junto com os arquivos que começam com . em seus nomes.

ls significa a listagem dos diretórios junto com os arquivos no diretório atual.
a denota todos os arquivos no diretório, ocultos e não.
l denota a longa listagem de informações sobre arquivos + diretório com suas permissões e hora da última atualização.
.* denota todos os arquivos ocultos no diretório atual, começando com . em seu nome.

    
por jatingoel1349 06.03.2017 / 18:56