Este formato não é definido por bash
, mas por stat (1) . Pela página do manual vinculada, %T
fornece o tipo de dispositivo secundário em hexadecimal. Eu não tenho sua configuração específica, mas, por exemplo:
$ ls -l /dev/sda2
brw-rw-rw- 1 <user> <group> 8, 2 Oct 9 10:29 sda2
^ ^
| +-- minor device number
+------- major device number
$ stat /dev/sda2 --printf='%T\n'
2 <--- This matches the minor ^ device number
$
Se você for ls -lH /dev/mapper/VolGroup-LogVol00
, deverá ver <something>, 1
na saída - 1
é o menor número de dispositivo.
Editar para responder às suas perguntas adicionais:
"como o especificador de% T pode obter essa saída": chamando a chamada de sistema stat (2) . O membro st_rdev
da estrutura resultante possui o menor número de dispositivo, que pode ser extraído com menor (3) . Para usar em seus próprios scripts, use apenas stat(1)
como você fez.
"qual é a funcionalidade do especificador% T no comando bash printf": é totalmente não relacionado a dispositivos. Pelo bash hackers 'wiki , é a hora atual, formatada como para strftime (3) . O wiki dá um exemplo:
$ printf 'This is week %(%U/%Y)T.\n'
This is week 52/2010.