Cómo hacer coincidir * con files ocultos dentro de un directory

Cómo hacer coincidir los files ocultos dentro de los directorys proporcionados

por ejemplo

Si doy el siguiente command, no da el resultado de los files ocultos,

du -b maybehere*/* 

cómo lograr esto simple usando un solo command en lugar de usar

 du -b maybehere*/.* maybehere*/* 

ya que necesito escribir quizás dos veces.

Aproveche la expansión de la abrazadera:

 du -b maybehere*/{.??,}* 

Yo usé ?? no coincide .. , es decir, el directory principal. Alternativamente

 du -b maybehere*/{.[^.],}* 

La expansión de llaves es un mecanismo mediante el cual puede include más files / cadenas / lo que sea para la command-line al escribir less caracteres. La syntax es {word1,word2,...} , es decir, es una list de cadenas separadas por comas que comienza desde { y termina con } . bash Manual ofrece un ejemplo de uso muy básico y al mismo time muy común:

 $ echo a{d,c,b}e ade ace abe 

Volviendo a tu pregunta, lo más simple sería escribir

 du -b maybehere*/{.,}* 

Significa que la list contiene un punto . y … nada (nada está entre , y cierre } – por lo tanto, todos los files que comiencen desde punto y todos los files cuya estrella coincida con nada. El problema es que esto también coincidiría .. que indica el directory padre, y esto es más probablemente no es lo que quieres, así que tenemos que excluirlo de alguna manera. Para eso sirve – garantiza que debe haber al less otros dos caracteres o (en caso de .[^.] ) – el carácter después del primer punto debe no será otro punto.

Como ya está usando la syntax específica de GNU ( -b ):

 du -abd1 maybehere*/ 

De esa manera, es du que enumera los files en los directorys de maybehere* (y no excluye los files de puntos). -d1 limita el informe del uso del disco a un nivel inferior (incluidos los no directorys con -a ).

De lo contrario, para que los globos incluyan files ocultos (excepto . Y .. ), cada shell tiene su propia syntax:

  • zsh :

     du -b maybehere*/*(D) 
  • ksh93 :

     (FIGNORE='@(.|..)'; du -b maybehere*/*) 
  • bash :

     (shopt -s dotglob; du -b maybehere*/*) 
  • tcsh :

     (set globdot; du -b maybehere*/*) 
  • yash :

     (set -o dot-glob; du -b maybehere*/*) 

Si desea simplemente enumerar directorys ocultos u operar en directorys ocultos, entonces, como dijo Costas, puede usar

du -b maybehere*/.*

Esto le permitirá operar en files y directorys ocultos. Si solo desea directorys ocultos, puede especificarlo con

du -b maybehere*/.*/