Команда dir
списка каталогов Windows имеет в конце строку, показывающую общий объем пространства, занимаемого перечисленными файлами. Например, dir *.exe
отображаются все .exe
файлы в текущем каталоге, их размеры и общая сумма их размеров. Я хотел бы иметь подобную функциональность с моим dir
псевдонимом в bash, но я не уверен, как именно это сделать.
В настоящее время у меня alias dir='ls -FaGl'
в моем .bash_profile
, показывая
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/
например. Принимая ответы на этот вопрос :
dir | awk '{ total += $4 }; END { print total }'
который дает мне общее количество, но не печатает сам список каталогов. Есть ли способ изменить это в однострочном или шелл-сценарии, чтобы я мог передать любые ls
аргументы, которые я хочу, dir
и получить полный список плюс общая сумма? Например, я хотел бы запустить, dir -R *.jpg *.tif
чтобы получить список и общий размер этих типов файлов во всех подкаталогах. В идеале было бы здорово, если бы я мог получить размер каждого подкаталога, но это не обязательно.
ls -lh
печатает «total» , но это не всегда связано с тем, что awk
подсчитывают приведенные ниже сценарии, или что я складываю вручную. Иногда оно близко к числу килобайт файлов в каталоге, но, похоже, не учитывает выделенные размеры подкаталогов. Я был бы признателен, если бы вы
ls -lh
не показывает общий размер
ls -lh
помогает? Он печатает общую сумму сверху. Вы также можете запустить,du -sh *.exe
чтобы получить информацию об использовании дискового пространства в удобочитаемой форме.