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 }
. bash
manuel ç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