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.