Skorzystaj z rozszerzenia nawiasu klamrowego:
du -b maybehere*/{*,.[^.],.??*}
lub alternatywnie
du -b maybehere*/{,.[^.],..?}*
Logika tego prawdopodobnie nie jest oczywista, więc oto wyjaśnienie:
* pasuje do wszystkich nie ukrytych plików
.[^.]dopasowuje pliki, których nazwy zaczynają się od pojedynczej kropki, po której nie następuje kropka; które są tylko 2 znakowymi nazwami plików w pierwszej formie.
.??* dopasowuje ukryte pliki o długości co najmniej 3 znaków
..?* jak wyżej, ale drugi znak musi być kropką
Chodzi o to, aby wykluczyć twarde linki do bieżącego i nadrzędnego katalogu ( .i ..), ale dołączyć wszystkie normalne pliki w taki sposób, aby każdy z nich był policzony tylko raz!
Na przykład najłatwiej byłoby po prostu napisać
du -b maybehere*/{.,}*
Oznacza to, że lista zawiera kropkę .i „nic” (nic nie jest pomiędzy ,i zamykanie }), więc wszystkie pliki ukryte (zaczynające się od kropki) i wszystkie pliki nie ukryte (które zaczynają się od „nic”) byłyby zgodne. Problem polega na tym, że to również pasuje .i .., i najprawdopodobniej nie jest to, czego chcesz, więc musimy jakoś to wykluczyć.
Ostatnie słowo na temat rozszerzenia nawiasu klamrowego.
Rozwijanie nawiasów klamrowych to mechanizm, dzięki któremu możesz dołączyć więcej plików / ciągów znaków / cokolwiek do wiersza poleceń, pisząc mniej znaków. Składnia jest {word1,word2,...}, tzn. Jest to lista ciągów oddzielonych przecinkami, które zaczynają się {i kończą }. bashinstrukcja podaje bardzo prosty, a jednocześnie bardzo powszechny przykład użycia:
$ echo a{b,c,d}e
abe ace ade
maybehere*/.*i dołączyć do wszystkich dla wszystkich