Polecenie dir
listowania katalogów Windows ma na końcu wiersz pokazujący całkowitą ilość miejsca zajmowanego przez wymienione pliki. Na przykład dir *.exe
pokazuje wszystkie .exe
pliki w bieżącym katalogu, ich rozmiary i sumę ich rozmiarów. Chciałbym mieć podobną funkcjonalność z moim dir
aliasem w bash, ale nie jestem pewien, jak to zrobić.
Obecnie mam alias dir='ls -FaGl'
w swoim .bash_profile
pokazie
drwxr-x---+ 24 mattdmo 4096 Mar 14 16:35 ./
drwxr-x--x. 256 root 12288 Apr 8 21:29 ../
-rw------- 1 mattdmo 13795 Apr 4 17:52 .bash_history
-rw-r--r-- 1 mattdmo 18 May 10 2012 .bash_logout
-rw-r--r-- 1 mattdmo 395 Dec 9 17:33 .bash_profile
-rw-r--r-- 1 mattdmo 176 May 10 2012 .bash_profile~
-rw-r--r-- 1 mattdmo 411 Dec 9 17:33 .bashrc
-rw-r--r-- 1 mattdmo 124 May 10 2012 .bashrc~
drwx------ 2 mattdmo 4096 Mar 24 20:03 bin/
drwxrwxr-x 2 mattdmo 4096 Mar 11 16:29 download/
na przykład. Biorąc odpowiedzi na to pytanie :
dir | awk '{ total += $4 }; END { print total }'
co daje mi sumę, ale nie drukuje samej listy katalogów. Czy istnieje sposób, aby zmienić to w skrypt jednowierszowy lub skrypt powłoki, aby móc przekazać dowolne ls
argumenty dir
i uzyskać pełną listę plus suma sumy? Na przykład chciałbym uruchomić, dir -R *.jpg *.tif
aby uzyskać listę i całkowity rozmiar tych typów plików we wszystkich podkatalogach. Idealnie byłoby świetnie, gdybym mógł uzyskać rozmiar każdego podkatalogu, ale nie jest to konieczne.
ls -lh
drukuje „suma” , ale nie zawsze jest to związane z tym, co awk
obliczają poniższe skrypty lub co sumuję ręcznie. Czasami jest zbliżona do liczby KB plików w katalogu, ale wydaje się, że nie stosuje przydzielonych rozmiarów podkatalogów. Byłbym wdzięczny, gdybyś mógł wskazać mi, czym dokładnie jest ta liczba ...
ls -lh
nie pokazuje całkowitej wielkości
ls -lh
pomaga? Drukuje całkowitą sumę na górze. Możesz także uruchomić,du -sh *.exe
aby uzyskać informacje o użyciu miejsca na dysku w postaci czytelnej dla człowieka.