web-dev-qa-db-ja.com

dfとmountを使用する場合、物理ディスクのみを表示します

dfまたはmountを使用するとき、私は何よりも物理ディスクパーティションに関心があります。最近では、これらのコマンドの出力は、一時的および仮想的なファイルシステム、cgroup、その他私が定期的に関心のないものに圧倒されています。

出力の物理パーティションは常に '/'で始まるため、dfおよびmountのエイリアスを作成してみました。

alias df1="df | egrep '^/'"
alias mount1="mount | egrep '^/'"

mount1の場合は問題なく機能します(ただし、 '/'は赤で表示されます)。ただし、df1の場合、-hオプションをdfおよびdf1 -hを実行できません。使用する可能性のあるすべてのオプションの組み合わせにエイリアスを設定したくない。私は本当にbashで関数を定義することを検討する必要がありますか? df1のより良い解決策はありますか?

9
yves

次のように関数を定義できます。

function df1() { df "$@" | grep -E '^/'; }

出力例:

$ df1 -h
/dev/sda8        25G  8.1G   16G  35% /
/dev/sda4        25G   20G  5.8G  78% /media/pandya/Documents+Edu
/dev/sda3       9.5G  7.1G  2.0G  79% /media/pandya/Ext4
/dev/sda7        24G   17G  6.9G  71% /media/pandya/Extra+Other
/dev/sda6        26G   25G  448M  99% /media/pandya/Media+Game
/dev/sda10       15G  7.9G  7.1G  53% /media/pandya/Miscellaneous
/dev/sda5        36G   22G   14G  63% /media/pandya/Software+OS

ここに $@を使用すると、引数を入力できます。 [ご了承ください $@は、具体的な理由がない限り、常に二重引用符で囲む必要があります。 -ed]

3
Pandya

この回答は、次の問題に対処するために yves's を試みます。

すべてのオプションの組み合わせにエイリアスを設定したくない(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の「スクリプト」を表現しています。実際には2つあります。

  1. スクリプト1pは、1行目を出力します。この例では、dfのヘッダーです(psパイピングにも同じものを使用しています)。
  2. スクリプト/^\//p/で始まるすべての行に一致し、それを出力します
  3. ;は2つのsedスクリプトを分離します
1
Ori Sapogalaxy

alias df='df -hT -xtmpfs -xdevtmpfs'を使用しています。

GNU dfを最近Linuxで実際に使用できるようにするためにエイリアスを使用する必要があります。「実際の」ファイルシステムのみを表示するオプションがあります(それが何であれ)手段)。

正確には、df -hxtmpfsはほとんどのがらくたを取り除き、エイリアスなしで引き続き使用できます。 netstat -tulnpなどほど悪くない... *ため息*

0
Nicolas Melay