Ich erhalte eine unterschiedliche Anzahl von Dateien mit du -h
und 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.‘*’