Aproveite a expansão de contraventores:
du -b maybehere*/{.??,}*
Eu usei ??
para não corresponder a ..
, ou seja, o diretório pai. Alternativamente
du -b maybehere*/{.[^.],}*
Expansão de chaves é um mecanismo pelo qual você pode incluir mais arquivos / strings / whatever para a linha de comando, escrevendo menos caracteres. A sintaxe é {word1,word2,...}
, ou seja, é uma lista de sequências separadas por vírgula que começa em {
e termina com }
. bash
manual fornece um exemplo muito básico e ao mesmo tempo muito comum de uso:
$ echo a{d,c,b}e
ade ace abe
Agora voltando à sua pergunta, o simples seria apenas escrever
du -b maybehere*/{.,}*
Isso significa que a lista contém um ponto .
e ... nada (nada é entre ,
e fechamento }
- assim, todos os arquivos que começam com ponto e todos os arquivos que partem do nada seriam correspondentes. O problema é que isso também corresponderia a ..
, o que indica o diretório pai, e isso provavelmente não é o que você quer, então temos que excluí-lo de alguma forma.Isso é para o qual ??
- garante que deve haver pelo menos dois outros caracteres ou (no caso de .[^.]
) - o caractere após o primeiro ponto não deve ser outro ponto.