Nutzen Sie die Klammererweiterung:
du -b maybehere*/{*,.[^.],.??*}
oder alternativ
du -b maybehere*/{,.[^.],..?}*
Die Logik dahinter ist wahrscheinlich nicht offensichtlich, daher hier eine Erklärung:
* findet alle nicht versteckten Dateien
.[^.]Sucht nach Dateien, deren Namen mit einem Punkt beginnen, gefolgt von keinem Punkt. Das sind nur 2-stellige Dateinamen in der ersten Form.
.??* findet versteckte Dateien, die mindestens 3 Zeichen lang sind
..?* Wie oben, aber das zweite Zeichen muss ein Punkt sein
Der springende Punkt ist, harte Links zum aktuellen und übergeordneten Verzeichnis ( .und ..) auszuschließen , aber alle normalen Dateien so einzuschließen, dass jede von ihnen nur einmal gezählt wird!
Am einfachsten wäre es zum Beispiel, einfach zu schreiben
du -b maybehere*/{.,}*
Dies bedeutet, dass die Liste einen Punkt .und "nichts" enthält (nichts ist dazwischen ,und schließt sich }), sodass alle versteckten Dateien (die mit einem Punkt beginnen) und alle nicht versteckten Dateien (die mit "nichts" beginnen) übereinstimmen würden. Das Problem ist, dass dies auch passt .und .., und das ist höchstwahrscheinlich nicht das, was Sie wollen, also müssen wir es irgendwie ausschließen.
Letztes Wort zur Klammererweiterung.
Die geschweifte Klammer ist ein Mechanismus, mit dem Sie mehr Dateien / Zeichenfolgen / was auch immer in die Befehlszeile einfügen können, indem Sie weniger Zeichen schreiben. Die Syntax lautet {word1,word2,...}, dh es handelt sich um eine Liste von durch Kommas getrennten Zeichenfolgen, die von {und mit beginnen und enden }. bashHandbuch gibt ein sehr einfaches und gleichzeitig sehr häufiges Anwendungsbeispiel:
$ echo a{b,c,d}e
abe ace ade
maybehere*/.*und hängen Sie es für alle an