lista nomes de partições linux apenas no bash

4

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?

    
por user12145 20.07.2014 / 22:20

8 respostas

7

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

    
por 21.07.2014 / 14:28
5

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
    
por 20.07.2014 / 22:37
2

Algumas ideias ...

awk '{print $1}' /proc/mounts

df | awk '{print $1}'

df | cut -f1 -d " "

    
por 20.07.2014 / 22:35
1

E sobre:

df | cut -d" " -f1
    
por 20.07.2014 / 22:36
1

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
por 21.07.2014 / 14:13
1

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
    
por 21.07.2014 / 14:27
0
  [root@ct01 ~]# ls /dev/sd*[0-9]
  /dev/sda1  /dev/sda2
    
por 21.07.2014 / 14:48
0

Este comando listará todas as partições no sistema em um formato fácil de iterar:

tail -n +3 /proc/partitions | awk '{ print $4 }'
    
por 21.07.2014 / 16:15

Tags