Этот ответ пытается решить следующие проблемы Ив :
Я бы предпочел не иметь псевдоним для каждой комбинации параметров (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 и, следовательно, пропускает их в результате для меня