253-10 refere-se ao número maior e menor do dispositivo.
O modo mais fácil (mas menos confiável porque você deve nunca analisar ls ) descubra o que é:
ls -l /dev/ | grep -E ' 253, +10 '
(o +
é porque haverá um número desconhecido, mas pelo menos um, de espaços entre a vírgula após o número principal e o menor)
Observe que, se o número principal / menor que você está procurando puder corresponder aos dispositivos de caracteres e de bloco, você terá duas linhas de saída. Como você sabe que está interessado apenas em dispositivos de bloco (porque você sabe que é uma partição de disco), é possível modificar o regexp para:
ls -l /dev/ | grep -E '^b.* 253, +10 '
Eu não tenho nenhuma partição device-mapper no meu sistema, então eu vou usar dispositivos de loop (major 7, menores 0,16,32,48, etc) como um exemplo:
# ls -l /dev/ | grep -E '^b.* 7, +16 '
brw-rw---- 1 root disk 7, 16 Mar 17 10:37 loop1
Outra alternativa é usar o GNU find
, stat
e grep
. Ao contrário de ls
, isso é confiável para análise porque você tem controle total sobre o formato de saída de stat
. O problema é que o GNU stat
só pode gerar números maiores e menores em hexadecimal, não em decimal. Portanto, você precisa converter o% decimal253
e 10
em hexadecimal fd
e a
.
A maioria dos aplicativos de calculadora no linux pode fazer essa conversão, e você pode até fazer isso da linha de comando bash
com, por exemplo, printf '%x\n' 253
find /dev -type b -exec stat -c '%t %T %n' {} + | grep -i '^fd a '
para o meu exemplo de dispositivo de loop, 7 decimal também é 7 hexadecimal, mas 16 decimal é 10 hex.
# find /dev -type b -exec stat -c '%t %T %n' {} + | grep -i '^7 10 '
7 10 /dev/loop1
Isso seria muito mais simples (não exigiria stat
ou grep
ou converter decimal em hexadecimal) se você pudesse refinar a pesquisa de find
por números maiores e menores do dispositivo (o mesmo que você pode por tamanho ou perms ou mtime etc), mas AFAICT de man find
, não parece ter essa capacidade.