Ao usar mount
para simplesmente listar todos os sistemas de arquivos montados, existe alguma maneira de fazer com que ele não liste sistemas de arquivos "fictícios"? É isso, faça com que liste apenas os sistemas de arquivos que df
o fazem.
EDITAR: por "fictício" quero dizer os sistemas de arquivos que são incluídos df
quando você usa a --all
opção, já que é assim que a df
página de manual os chama.
Responder1
Em primeiro lugar, "manequim" provavelmente não é o melhor termo - procfs
ou sysfs
está dev(tmp)fs
longe de ser inútil. Use a -t
opção (type) para mount
e alimente-a com uma lista separada por vírgulas de sistemas de arquivos nos quais você está interessado:
mount -t tmpfs,xfs
ou use grep
para filtrar o que deseja (provavelmente grep -v
para mostrar o que não corresponde):
mount | grep -Ev "(cgroup|proc|sysfs)"
Responder2
Outra opção é usar lsblk -f
:
lsblk lista informações sobre todos os dispositivos de bloco disponíveis ou especificados.
Isso significa que compartilhamentos de rede (nfs, sshfs) ou sistemas de arquivos virtuais (dev,run,sys,proc et al) são nãoexibido. Além disso, um tmpfs
sistema de arquivos que normalmente é mostrado df -h
emnãoaparecer.
A -f
opção gera informações sobre sistemas de arquivos que incluem oponto de montagem.
na minha máquina, por exemplo, lista:
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
|-sda1 ext2 bootpar ab2e48a8-5f1c-484e-a4a1-f8545e4b2019 /boot
|-sda2 swap swappar 6e9f6e70-141a-417c-82a5-113a3d4c5a53 [SWAP]
`-sda3 ext4 homepar 52f7164d-fac7-4abe-bf78-71353fac7850 /home
sdb isw_raid_member
`-md126 ext4 rootparraid 4275f5ba-8244-4039-9100-06afee678557 /
sdc isw_raid_member
`-md126 ext4 rootparraid 4275f5ba-8244-4039-9100-06afee678557 /
sr0
Responder3
df
no GNU coreutils possui uma lista de tipos de sistemas de arquivos ignorados, mas não contém muitas entradas. Na maior parte, ele elimina sistemas de arquivos com tamanho 0. Isso geralmente cobre os tipos de sistemas de arquivos ignorados.
mount
não tem acesso direto ao tamanho do sistema de arquivos. Para obter a mesma filtragem, você precisaria agrupar a saída de mount
com a saída de df
ou alguma outra ferramenta para obter o tamanho do sistema de arquivos.
Esta é uma maneira de classificar a saída de df
and mount
e classificá-la e juntá-la.
join -o 2.1,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9 <(df -P | tail -n +2 | sort) <(mount | sort)
Aqui está outra abordagem com uma linha única do Python. (Perl é muito melhor nessas linhas simples, mas não possui statvfs
em sua biblioteca padrão.)
mount | python -c 'import os, sys; [sys.stdout.write(line) for (dev, line) in [(line.split(" ")[2], line) for line in sys.stdin.readlines()] if os.statvfs(dev).f_blocks]'