Para listar todas as partições definidas para um dispositivo como execução raiz:
lsblk
OR
fdisk -l
OR
cat /proc/partitions
E também como mencionado por @Giedrius Rekasius
fdisk -l /dev/sda | grep '^/dev' | cut -d' ' -f1
df no linux lista as seguintes estatísticas sobre partições.
-bash-4.1# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda3 1918217320 1473337340 347440136 81% / tmpfs 32970328 0 32970328 0% /dev/shm /dev/sda1 482214 148534 308781 33% /boot /dev/sdd1 1922860884 1638599284 186585876 90% /disk5 /dev/sdc1 1922858352 1474925416 350257336 81% /disk2 /dev/sdb1 1922858352 1028783752 796399000 57% /disk4
Se eu quiser obter uma lista dos nomes das partições, por exemplo: "/ dev / sda3 / dev / sda1 / dev / sdc1 ..." como faço isso no bash?
Para listar todas as partições definidas para um dispositivo como execução raiz:
lsblk
OR
fdisk -l
OR
cat /proc/partitions
E também como mencionado por @Giedrius Rekasius
fdisk -l /dev/sda | grep '^/dev' | cut -d' ' -f1
df
exibirá apenas partições montadas. Se é isso que você deseja, então extraia os nós de dispositivo de df
output você grep
para as linhas que começam com "/ dev" e cut
a primeira coluna da saída restante:
df | grep '^/dev' | cut -d' ' -f1
ou para listá-los em uma única linha, separados por espaços:
df | grep '^/dev' | cut -d' ' -f1 | tr '\n' ' '
Se você deseja obter uma lista de partições que não são necessariamente montadas, então como root você pode executar fdisk -l
e, opcionalmente, especificar dispositivo (s) para procurar partições:
fdisk -l [device...]
Se você não especificar nenhum dispositivo, o fdisk usará os dispositivos mencionados em /proc/partitions
se esse arquivo existir.
O fdisk gerará informações em um formato similar a df
, de modo que, para extrair nós de dispositivos, você pode fazer a mesma coisa descrita para df
:
fdisk -l | grep '^/dev' | cut -d' ' -f1
Algumas ideias ...
awk '{print $1}' /proc/mounts
df | awk '{print $1}'
df | cut -f1 -d " "
E sobre:
df | cut -d" " -f1
Outra opção:
df --type ext2 --type ext3 --type ext4 | tail -n +2 | awk '{ print $1 }' | tr '\n' ' '
--type <filesystem>
permite que você especifique quais sistemas de arquivos você está interessado tail -n +2
começa a imprimir a partir da segunda linha de saída (para que a linha de título não seja impressa) awk '{ print $1 }'
imprimirá a coluna mais à esquerda que contém as informações da partição tr '\n' ' '
traduzirá novas linhas para espaços, para que as informações sejam todas em uma linha blkid
exibe apenas armazenamentos reais conectados ao computador com ou sem montagem.
# sudo blkid | awk '{print substr($1, 0, length($1) - 1)}'
/dev/sda1
/dev/sda2
/dev/sdb1
/dev/sdb2
/dev/sr1
[root@ct01 ~]# ls /dev/sd*[0-9]
/dev/sda1 /dev/sda2
Este comando listará todas as partições no sistema em um formato fácil de iterar:
tail -n +3 /proc/partitions | awk '{ print $4 }'