% T-Bezeichner in der Option printf des Befehls "stat"

1495
karthikeyan vijayan

Ich möchte wissen, was der% T- statBezeichner in der Option printf ist und wie der Dateideskriptorwert abgerufen wird. Das heißt, fd, 1 wird mit dem folgenden Befehl gedruckt.

Befehl ist

$> echo `stat -L /dev/mapper/VolGroup-LogVol00 --printf="%T\n"` 

Ausgabe: 1-> die sich auf "dm-1" bezieht

Vielen Dank im Voraus für jede Antwort.

0

1 Antwort auf die Frage

0
cxw

Dieses Format wird nicht durch bash, sondern durch stat (1) definiert . Gibt auf der verknüpften Manpage %Tden untergeordneten Gerätetyp in Hex an. Ich habe keine spezifische Konfiguration, aber zum Beispiel:

$ 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 $ 

Wenn Sie in der Ausgabe ls -lH /dev/mapper/VolGroup-LogVol00sehen sollten, ist die untergeordnete Gerätenummer.<something>, 11

Bearbeiten Sie, um Ihre zusätzlichen Fragen zu beantworten:

msgstr "wie der% T - Bezeichner diese Ausgabe erhalten konnte": durch Aufruf des stat (2) - Systemaufrufs. Das st_rdevMitglied der resultierenden Struktur hat die untergeordnete Gerätenummer, die mit minor (3) extrahiert werden kann . Für die Verwendung in Ihren eigenen Skripts verwenden stat(1)Sie einfach so, wie Sie es getan haben.

"Was ist die Funktionalität des% T-Spezifizierers im bash-Befehl" printf ": Dies ist völlig unabhängig von Geräten. Gemäß dem Wiki der Bash-Hacker ist dies die aktuelle Uhrzeit, die für die Strftime- Zeit formatiert ist (3) . Das Wiki gibt ein Beispiel:

$ printf 'This is week %(%U/%Y)T.\n' This is week 52/2010. 
Der Zweck meiner Frage ist, wie der% T-Bezeichner diese Ausgabe erhalten kann und welche Funktionalität der% T-Bezeichner im Befehl bash printf hat karthikeyan vijayan vor 9 Jahren 0