Assine a Lista Dicas-L
Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.
Contagem de arquivos em um diretório
Colaboração: Valmir Pimenta
Data de Publicação: 16 de setembro de 2010
Hoje precisei de uma forma de obter uma contagem de arquivos em um diretório no meu servidor GNU/Linux que estava muito cheio. Infelizmente o ls não apresenta esta contagem automaticamente para nós.
Usei então o seguinte comando:
ls -la|grep -e "^-"|wc -l
Ficou ótimo. Pensei então, e quantos diretórios a pasta contem? Foi só adaptar:
ls -la|grep -e "^d"|wc -l
Agora, bom mesmo seria se tivesse um comando pra isto. Nada demais:
alias fid=`echo "Arquivos: $(ls -la |grep "^-"|wc -l) Diretórios: $(ls -la|grep "^d"|wc -l)"`
Para não ter que fazer isto sempre, coloque o alias no seu script de inicialização e toda vez que precisar saber o número de arquivos e diretórios dentro do diretório atual, basta usar o comando
fid
Referências Adicionais
Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.
Avalie esta dica
Opinião dos Leitores
21 Set 2010, 12:23
Ole Peter, a idéia é imprimir só a cotagem. Seu modo funciona também ams é mais extenso.
Renato, interessante esta funcionalidade do zsh. Mas como ainda estou dando meus primeiros passos no bash, vou guardar pra mais tarde.
Genilson, Valeu pela dica. Já incorporei. De fato, a versão aqui foi a primeira que criei agora ela esta assim:
alias oid='fl=`ls -lA|cut -c1`; echo -e "Inventário de objetos no diretório $(pwd) \n\nArquivos: \t" $(echo "$fl"|grep -c -) "\nDiretórios: \t" $(echo "$fl"|grep -c d) "\nsoft-Links: \t" $(echo "$fl"|grep -c l) "\nSockets: \t" $(echo "$fl"|grep -c s) "\nDispositivos: \t" $(echo "$fl"|grep -c [c,b]) "\n
Assim só usa o ls uma vez e conta muitas coisas diferentes. Se queiser que conte incluindo subdiretórios, use ls -lAR no lugar de ls -lA.
Carlos, obrigado.
20 Set 2010, 20:28
tambem devia funcionar
16 Set 2010, 11:14
# ls -d *(/)
Os seguintes flags são permitidos:
% -- device files
) -- end of qualifiers
* -- executable plain files
+ -- + command name
- -- follow symlinks toggle
. -- plain files
/ -- directories
: -- modifier
= -- sockets
@ -- symbolic links
A -- group-readable
D -- glob dots
E -- group-executable
F -- non-empty directories
G -- owned by EGID
I -- group-writeable
L -- + size
M -- mark directories
N -- use NULL_GLOB
O -- + sort order, down
R -- world-readable
S -- setgid
T -- mark types
U -- owned by EUID
W -- world-writeable
X -- world-executable
[ -- + range of files
^ -- negate qualifiers
a -- + access time
c -- + inode change time
d -- + device
e -- execute code
f -- + access rights
g -- + owning group
l -- + link count
m -- + modification time
n -- numeric glob sort
o -- + sort order, up
p -- name pipes (FIFOS)
r -- owner-readable
s -- setuid
t -- sticky bit set
u -- + owning user
w -- owner-writeable
x -- owner-executable
16 Set 2010, 11:00
Arquivos: $ find . -maxdepth 1 -type f
Diretórios: $ find . -maxdepth 1 -type d
Onde '-type' você define o tipo arquivo (f) ou diretório (d) e '-maxdepth' você define a profundidade da busca.
Abraço,
@JeanFerri
16 Set 2010, 08:30
16 Set 2010, 08:20
Aparentemente links simbólicos também não são levados em conta na contagem de arquivos, certo?





