Manfaatkan ekspansi brace:
du -b maybehere*/{*,.[^.],.??*}
atau sebagai alternatif
du -b maybehere*/{,.[^.],..?}*
Logika di balik ini mungkin tidak jelas, jadi inilah penjelasannya:
* cocok dengan semua file yang tidak disembunyikan
.[^.]cocok dengan file yang namanya dimulai dengan satu titik diikuti dengan bukan titik; itu hanya 2 nama file karakter dalam bentuk pertama.
.??* cocok dengan file tersembunyi yang panjangnya minimal 3 karakter
..?* seperti di atas, tetapi karakter kedua harus berupa titik
Intinya adalah untuk mengecualikan tautan keras ke direktori saat ini dan induk ( .dan ..), tetapi sertakan semua file normal sedemikian rupa sehingga masing-masing akan dihitung hanya sekali!
Misalnya, yang paling sederhana adalah menulis
du -b maybehere*/{.,}*
Ini berarti bahwa daftar berisi titik .dan "tidak ada" (tidak ada yang berada di antara ,dan menutup }), sehingga semua file yang tersembunyi (yang dimulai dari titik) dan semua file yang tidak tersembunyi (yang dimulai dari "tidak ada") akan cocok. Masalahnya adalah ini juga cocok .dan .., dan ini kemungkinan besar bukan yang Anda inginkan, jadi kami harus mengecualikannya.
Kata terakhir tentang ekspansi brace.
Ekspansi Brace adalah mekanisme di mana Anda dapat memasukkan lebih banyak file / string / apa pun ke baris perintah dengan menulis lebih sedikit karakter. Sintaksnya adalah {word1,word2,...}, yaitu daftar string yang dipisahkan koma yang dimulai dari {dan diakhiri dengan }. bashmanual memberikan contoh penggunaan yang sangat mendasar dan sekaligus sangat umum:
$ echo a{b,c,d}e
abe ace ade
maybehere*/.*dan tambahkan ke atas untuk semua