mostra apenas discos físicos ao usar df e mount

6

Quando uso df ou mount , estou mais interessado em partições de disco físico. Hoje em dia a saída desses comandos é sobrecarregada por sistemas de arquivos temporários e virtuais, cgroups e outras coisas que eu não estou interessado em uma base regular.

Minhas partições físicas na saída sempre começam com ' / ', então tentei criar aliases para df e mount :

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

Isso funciona bem para mount1 (embora mostre o ' / ' em vermelho), mas para df1 às vezes gostaria de adicionar a opção -h a df e não posso fazer df1 -h . Eu preferiria não ter um alias para cada combinação de opções que eu poderia querer usar. Eu realmente tenho que olhar para definir funções no bash (eu preferiria não)? Existe uma solução melhor para df1 ?

    
por yves 04.03.2016 / 09:47

5 respostas

4

Você pode resolver o problema do argumento df1 usando o seguinte alias:

alias df1='df --type btrfs --type ext4 --type ext3 --type ext2 --type vfat --type iso9660'

Certifique-se de adicionar qualquer outro tipo ( xfs , fuseblk (para suporte NTFS moderno, como @Pandya apontou), etc.) com o qual você está interessado. pode fazer df1 -h e obter o resultado esperado.

mount tem uma opção -t , mas você não pode especificá-la várias vezes (somente a última é obtida), lá eu usaria:

alias mount1="mount | /bin/grep -E '^/'"

Estou usando grep -E como egrep está reprovado e usar /bin/grep garante que você não está usando --colour=auto de um alias para grep / egrep

    
por 04.03.2016 / 09:55
3

Você pode definir a função da seguinte forma:

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

Exemplo de saída:

$ 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

Aqui $@ permite que você insira seus argumentos! [Observe que $@ deve sempre ser escrito entre aspas duplas, a menos que você tenha uma razão concreta para não fazê-lo. -ed]

    
por 04.03.2016 / 10:12
2

Se alternar para um% diferente df for uma opção, use pydf , pois ele não mostra sistemas de arquivos com 0 blocos por padrão e possui um indicador, cores e algumas outras propriedades ativadas por padrão. Ele funciona bem com o alias para df , e o original está sempre disponível usando \df de qualquer maneira.

    
por 27.05.2016 / 22:01
1

Esta resposta tenta responder às preocupações do yves seguintes:

I would prefer not to have an alias for every option combination (1)

e

although it shows the '/' in red (2)

e (3) adicione uma informação importante à saída variável, que é a linha de cabeçalho de df que muda de acordo com os sinalizadores fornecidos.

(1) Você precisa de function , porque, por definição, aceita argumentos. E é muito simples definir e usar como você descobrirá abaixo.

(2) o% vermelho/ é produzido por grep --color , que é um alias comum a grep (você pode verificar isso executando alias ).

código

function df1 
{ 
    df $* | sed -n '1p;/^\//p;'
}

As novas linhas acima pretendem melhorar a legibilidade, você pode substituí-las por espaço.

Copie e cole este snippet diretamente em uma sessão bash interativa ou, melhor ainda, anexe-o ao seu ~/.bashrc .

Exemplo de uso

$ 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% /

O que faz

A função df1 chama df com quaisquer argumentos que você passar e canaliza ( | ) a saída para sed , que é invocada com -n para suprimir a impressão automática do espaço de padrão. O resto expressa os "scripts" sed, dois na verdade:

  1. o script 1p imprime a primeira linha, que no nosso caso é df (eu uso o mesmo para ps piping),
  2. o script /^\//p corresponde a qualquer linha que começa com / e imprime
  3. ; separa os 2 scripts sed
por 27.05.2016 / 18:26
0

Eu uso alias df='df -hT -xtmpfs -xdevtmpfs' .

Quase é uma droga ter que usar um alias para tornar o GNU df realmente utilizável no Linux atualmente. Deve haver uma opção para mostrar apenas sistemas de arquivos "reais" (o que quer que isso signifique).

Geralmente, df -hxtmpfs retira a maior parte das sobras e permanece utilizável sem um alias. Não é realmente pior do que netstat -tulnp e tal ... * suspiro *

    
por 18.08.2018 / 18:26