Этот ответ пытается решить следующие проблемы Ив :
Я бы предпочел не иметь псевдоним для каждой комбинации параметров (1)
а также
хотя он показывает '/' красным (2)
и (3)
добавить важную часть информации к изменяющемуся выводу, которая является dfстрокой заголовка, которая изменяется в соответствии с предоставленными флагами.
(1) Вам нужно function, потому что по определению он принимает аргументы. И это очень просто определить и использовать, как вы узнаете ниже.
(2) красный /генерируется grep --color, что является общим псевдонимом для grepсебя (вы можете проверить это, запустив alias).
код
function df1
{
df $* | sed -n '1p;/^\//p;'
}
Вышеприведенные строки предназначены для улучшения читабельности, их можно заменить пробелом.
Скопируйте и вставьте этот фрагмент непосредственно в интерактивную сессию Bash или, что еще лучше, добавьте его к себе ~/.bashrc.
Пример использования
$ df1
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/disk1 487358464 316093104 171009360 65% /
/dev/disk2 524032 302620 221412 58% /Volumes/Packer
$ df1 -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/disk1 hfs 465G 302G 164G 65% /
/dev/disk2 hfs 512M 296M 217M 58% /Volumes/Packer
$ df1 -hT .
Filesystem Type Size Used Avail Use% Mounted on
/dev/disk1 hfs 465G 302G 164G 65% /
Что оно делает
Функция df1вызывает dfс любыми аргументами, которые вы передаете, и посылает |выходные данные pipe ( ) sed, которые активируются -nдля подавления автоматической печати пространства шаблона. Остальное выражает sed "scripts", два на самом деле:
- скрипт
1pвыводит 1-ю строку, которая в нашем случае является dfзаголовком 's (я использую то же самое для psтрубопроводов),
- скрипт
/^\//pсоответствует любой строке, начинающейся с /, затем печатает ее
; разделяет 2 сценария sed
df --type ntfsне показывает раздел 5 NTFS и, следовательно, пропускает их в результате для меня