2013-04-16 20 views
12

Kiedy próbuję obliczyć rozmiar plików i katalogu wewnątrz katalogu, zajmuje to więcej czasu. Polecenie, którego użyłem, to du -ch --max-depth=1.du -h --max-depth = 1 zajmuje dużo czasu

Czy istnieje inny sposób obliczania całkowitego rozmiaru plików i folderów?

Dzięki

Odpowiedz

15

Polecenie du pobiera użycie dysku wszystkich plików w katalogu i wszystkich podkatalogów (rekurencyjnie) domyślnie. Czas poświęcony przez du odnosi się do liczby analizowanych plików. Opcje -s lubwpływają tylko na wynik polecenia (a nie na samo skanowanie).

Niektóre opcje ograniczające skanowanie pliku to: --one-file-system, --exclude i --exclude-from.

Jeśli nie chcesz powtarzać się w podkatalogach, możesz użyć polecenia znajdź zamiast tego, co daje większą kontrolę nad tym, które pliki przeanalizować. Nie można jednak podsumować użycia dysku rekursywnie.

find /path/to/dir -maxdepth 1 -printf "%k\t%p\n" 

Zauważ, że %k zawsze powrócić użycie dysku w 1k bloków oraz prezentowane użycie dysku z nielicznych plików może być mniej lub nieco większy rozmiar pliku, a następnie zwrócony przez %s dowodzenia w ls. Tak więc "% k" zachowuje się jak polecenie du dla pojedynczych plików.

Jeśli chcesz połączyć funkcje find i du, możesz połączyć je w podobny sposób.

find . -maxdepth 1 -name "xyz*" -print0 | du --files0-from=- 
Powiązane problemy