该答案试图解决yves的以下问题:
  我不希望每个选项组合都没有别名(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使用传递给它的任何参数进行调用,|并将输出通过管道()传递到sed,以使用该调用-n来禁止自动打印模式空间。其余部分表示sed的“脚本”,其中两个实际上是:
- 脚本会1p打印第一行,在我们的例子中是第一行df的标题(我对ps管道使用相同的标题),
- 脚本/^\//p匹配以开头的任何行/,然后打印
- ;分隔2个sed脚本
 
              
df --type ntfs没有显示5 ntfs分区,因此对我来说跳过它们