Destek genişlemesinden yararlanın:
du -b maybehere*/{*,.[^.],.??*}
Veya alternatif olarak
du -b maybehere*/{,.[^.],..?}*
Bunun arkasındaki mantık muhtemelen açık değildir, bu yüzden burada açıklama:
* gizli olmayan tüm dosyalarla eşleşir
.[^.]isimlerin tek noktadan başlayıp nokta değil başından sonraki dosyaları eşleştirir; ilk formda yalnızca 2 karakterli dosya adlarıdır.
.??* en az 3 karakter uzunluğunda gizli dosyalarla eşleşir
..?* yukarıdaki gibi, ancak ikinci karakter bir nokta olmalıdır
Bütün mesele, mevcut ve üst dizine ( .ve ..) sabit bağlantıları hariç tutmak , ancak tüm normal dosyaları, her biri yalnızca bir kez sayılacak şekilde dahil etmektir !
Örneğin en basiti sadece yazmak
du -b maybehere*/{.,}*
Bu, listenin bir nokta .ve "hiçbir şey" (hiçbir şey arasında ,ve kapanması arasında }) içermesi anlamına gelir , böylece tüm gizli dosyalar (bir noktadan başlayan) ve gizli olmayan tüm dosyalar ("hiçbir şey" ile başlayan) eşleşir. Sorun şu ki, bu da eşleşecek .ve ..büyük olasılıkla istediğiniz şey değil, bu yüzden bir şekilde hariç tutmalıyız.
Brace genişlemesi hakkında son söz.
Brace genişletmesi , daha az karakter yazarak komut satırına daha fazla dosya / dizgi / ne ekleyebileceğiniz bir mekanizmadır. Sözdizimi {word1,word2,...}, yani virgülle ayrılmış dizelerden başlayıp {biten bir listedir }. bashmanuel çok temel ve aynı zamanda çok yaygın bir kullanım örneği verir:
$ echo a{b,c,d}e
abe ace ade
maybehere*/.*ve herkes için yukarıda ekleyin