Команда з 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
друкує «загальний» , але це не завжди пов’язано з тим, що awk
розраховують нижче сценарії, або з тим, що я додаю вручну. Іноді вона близька до кількості КБ файлів у каталозі, але, схоже, не приймає в дію виділені розміри підкаталогів. Буду вдячний, якщо ви можете вказати мені на пояснення того, що саме таке число ...
ls -lh
не показує загальний розмір dir з обчисленням його вмісту
ls -lh
вам не допомагають? Він друкує загальну суму вгорі. Ви також можете запустити,du -sh *.exe
щоб отримати інформацію про використання дискового простору в читаній людиною формі.