exibe apenas arquivos que começam com. (escondido)

6

Eu tentei exibir apenas arquivos ocultos, mas não sei como fazer isso.

Isso está funcionando (mas combinando também pontos em outros lugares)

ls -la | grep '\.'

Estava tentando adicionar ^ , mas não encontrou a solução.

    
por user3014282 09.04.2014 / 14:59

8 respostas

11

ls -ld .* fará o que você quiser.

    
por 09.04.2014 / 15:02
4
find . -type f -name '\.*' -print 

Deve funcionar se você quer listar todos os arquivos ocultos para baixo na hierarquia do diretório.

    
por 09.04.2014 / 15:07
1

Aqui estão outras duas maneiras de encontrar apenas arquivos ocultos.

find . -maxdepth 1 -name ".*" -type f -ls

ou

find . -maxdepth 1 -name ".*" -type f -printf "%P \n"

Use -maxdepth para especificar o quanto você deseja pesquisar na árvore de diretórios.

    
por 09.04.2014 / 15:26
1

Uma melhoria na resposta do Flup :

ls -lad .[!.]* ..?*

Isso listará todos os arquivos cujo nome começa com um ponto e que não são . nem .. .

Observe que, se você quiser enviar a saída de ls para grep (que, como apontado por devnull , nunca é uma boa idéia), certifique-se de usar \ls ou command ls porque se ls tiver um alias para mostrar sua saída colorida ( como é no Debian, por exemplo), sua saída contém seqüências de escape ANSI para criar saída colorida, o que irá atrapalhar seu grep se seu padrão estiver ancorado no início da linha.

    
por 09.04.2014 / 18:29
1

Se você quiser analisar ls output, deverá adicionar ^ no início da regex e não usar a opção -l . Usar -l faz com que cada saída de linha comece com informações de permissão de arquivo ou pasta, e não com nome de arquivo ou pasta. Então você deve usar assim:

ls -Ad | grep '^\.'

Ou você pode fazer com printf bash builtin:

printf "%s\n" .*

Se você usa zsh , pode usar:

print -l .*
    
por 09.04.2014 / 18:07
0

A solução de val0x00ff é realmente boa, mas esquece diretórios ocultos.

Se você quiser arquivos ocultos e diretórios ocultos , sem. e ..:

find -maxdepth 1 -regex '\./\..+' -printf "%P\n"
    
por 18.04.2014 / 00:30
0

Abaixo, um é muito compacto e suporta muitas variantes

1) Exibe arquivos, diretórios e subdiretórios ocultos

find . | grep "^\./\."

2) Exibir apenas diretórios e subdiretórios ocultos

find . -type d | grep "^\./\."

3) Exibe arquivos ocultos somente em diretórios atuais e subdiretórios

find . -type f | grep "^\./\."

4) Exibir arquivos e diretórios ocultos na pasta atual

find . -maxdepth 1 | grep "^\./\."

    
por 14.11.2018 / 04:04
-1

Você pode tentar:

ls -a |grep -E  "^\."

^ indica que é o começo do conteúdo com regexp

    
por 28.11.2017 / 12:44