Tentei exibir apenas arquivos ocultos, mas não sei como fazê-lo.
Isso está funcionando (mas combinando também pontos em outros lugares)
ls -la | grep '\.'
Estava tentando adicionar, ^mas não encontrou a solução.
ls -la | awk '$9 ~ /^\./'vai.
Tentei exibir apenas arquivos ocultos, mas não sei como fazê-lo.
Isso está funcionando (mas combinando também pontos em outros lugares)
ls -la | grep '\.'
Estava tentando adicionar, ^mas não encontrou a solução.
ls -la | awk '$9 ~ /^\./'vai.
Respostas:
find . -type f -name '\.*' -print
Deve funcionar se você quiser listar todos os arquivos ocultos na hierarquia de diretórios.
Se você deseja analisar a lssaída, adicione ^no início do regex e não use a -lopção O uso -lfaz com que cada saída de linha comece com informações de permissão de arquivo ou pasta, não o nome do arquivo ou da pasta. Então você deve usar assim:
ls -Ad | grep '^\.'
Ou você pode fazer com o printfbash embutido:
printf "%s\n" .*
Se você usa zsh, pode usar:
print -l .*
Aqui estão duas outras maneiras de encontrar apenas arquivos ocultos.
find . -maxdepth 1 -name ".*" -type f -ls
ou
find . -maxdepth 1 -name ".*" -type f -printf "%P \n"
Use -maxdepthpara especificar até onde você deseja pesquisar na árvore de diretórios.
Uma melhoria na resposta de Flup :
ls -lad .[!.]* ..?*
Isso listará todos os arquivos cujo nome começa com um ponto e que não são nem .nem ...
Note que se você deseja canalizar a saída de lspara grep(que, como apontado por devnull , nunca é uma boa idéia), certifique-se de usar \lsou command lsporque se lshouver um alias para mostrar a saída colorida (como no Debian, por exemplo) , sua saída contém seqüências de escape ANSI para criar uma saída colorida, que disparará sua grepse seu padrão for ancorado no início da linha.
-A(em vez de -a) a ignorar ., ...
-Adifere dos -adiretórios que lsdescem, mas ambos são (igualmente) ignorados e inúteis para nomes especificados na linha de comando com -defeito. Além disso, se lsfor aliasado, --color=auto então a tubulação está correta; apenas --color=alwaysou --colorcausa problemas.
A solução de val0x00ff é realmente boa, mas esquece diretórios ocultos.
Se você deseja arquivos e diretórios ocultos , sem. e ..:
find -maxdepth 1 -regex '\./\..+' -printf "%P\n"
find . \( -type f -o -type d \) -name '\.*' -print; aplique maxdepthonde for necessário.
Abaixo um é muito compacto e suporta muitas variantes
1) Exibir arquivos, diretórios e subdiretórios ocultos
find . | grep "^\./\."
2) Exibir apenas diretórios e subdiretórios ocultos
find . -type d | grep "^\./\."
3) Exibir arquivos ocultos apenas nos subdiretórios atuais e
find . -type f | grep "^\./\."
4) Exibir arquivos e diretórios ocultos na pasta atual
find . -maxdepth 1 | grep "^\./\."
Podes tentar:
find . -maxdepth 1 -type f -name '\.*' -print
find . -maxdepth 1 \( -type f -o -type d \) -name '\.*' -print
Claro que você pode usar maxdepthvalores diferentes ou removê-lo completamente. Muito útil se você deseja explorar entre diretórios ( -type d) ou arquivos regulares ( type f) ou ambos, e combinar com outras funções, como:
(por exemplo, horário da última modificação, com base no exemplo @piroux - preenchido por @ jeroen-wiert-pluimers )
find . -maxdepth 1 \( -type f -o -type d \) -name '\.*' -exec stat -c %y {} \; -printf "%P\t"
Podes tentar :
ls -a |grep -E "^\."
^ indica que é o começo do conteúdo com regexp
lsnunca é uma ideia maravilhosa, mas o que você tentou teria funcionado se você usasse a âncora^para indicar o início da partida.ls -la | grep '^\.'