Polecenie „Du” nie wyświetla wszystkich plików

0

I otrzymać inną liczbę plików z du -hi 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

Jaki jest powód niedopasowania i jak wyświetlić listę wszystkich plików o odpowiednich rozmiarach w danych ograniczeniach?

Warsztat tkacki
źródło
1
Usuń potok i „wc” i zapisz pliki, a następnie różnicuj je, aby zobaczyć, co jest grane.
1
Są wyraźnie różne, ponieważ pierwszy będzie wyglądał tylko na jeden katalog głęboko, a drugi przejdzie na dowolną głębokość
Bernhard

Odpowiedzi:

2

Wygląda na to, że szukasz globstar. Mówić:

shopt -s globstar

i powiedzieć:

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

Cytowanie z instrukcji :

*

Dopasowuje dowolny ciąg, w tym ciąg zerowy. Gdy opcja powłoki globstar jest włączona i ‘*’jest używana w kontekście rozwijania nazw plików, dwa sąsiednie znaki ‘*’użyte jako pojedynczy wzorzec będą pasować do wszystkich plików oraz zero lub więcej katalogów i podkatalogów. Jeśli po nim następuje ‘/’, dwa sąsiednie ‘*’s będą pasować tylko do katalogów i podkatalogów.

diabelnie
źródło