Der Befehl „Du“ listet nicht alle Dateien auf

Der Befehl „Du“ listet nicht alle Dateien auf

Ich erhalte eine unterschiedliche Anzahl von Dateien mit du -hund find:

loom@loom-desktop$ du -h ~/storage/Apps/*/trunk/test/*.cpp | wc -l
35
loom@loom-desktop$ find ~/storage/Apps/ -path */trunk/test/*.cpp | wc -l
111

Was ist der Grund für die Nichtübereinstimmung und wie werden alle Dateien mit entsprechenden Größen innerhalb der gegebenen Einschränkungen aufgelistet?

Antwort1

Sie scheinen zu suchen nach globstar. Sagen Sie:

shopt -s globstar

und sag:

du -h ~/storage/Apps/**/trunk/test/*.cpp    # note ** after Apps

Zitat aus demHandbuch:

*

Stimmt mit jedem String überein, einschließlich dem Null-String. Wenn die Shell-Option Globstar aktiviert ist und ‘*’in einem Dateinamenerweiterungskontext verwendet wird, ‘*’stimmen zwei nebeneinander liegende s als einzelnes Muster mit allen Dateien und null oder mehr Verzeichnissen und Unterverzeichnissen überein. Wenn ein folgt , stimmen ‘/’zwei nebeneinander liegende s nur mit Verzeichnissen und Unterverzeichnissen überein.‘*’

verwandte Informationen