Список раздела маркирует по сравнению с устройствами с помощью dbus/udisks в ударе

pdflatex по-видимому только берет один аргумент. Я могу думать об использовании find -exec

find -name '*.tex' -maxdepth 1 -exec pdflatex {} \;

Но могут быть лучшие альтернативы.

0
30.05.2013, 22:20
3 ответа

Возможно, что-то вдоль этих строк:

udevadm info --export-db | sed  '
  /^E: DEVNAME=/{s///;h;d;}
  /^E:[^=]*LABEL=/!d
  G;s/[^=]*=\(.*\)\n/"\1" /'

udisks эквивалентное существо:

udisks --dump | sed '
  /^[[:blank:]]*device-file:[[:blank:]]*/{s///;h;d;}
  /^[[:blank:]]*label:.*[^[:blank:]]/!d
  G;s/[^:]*:[[:blank:]]*\(.*\)\n/"\1" /'
1
28.01.2020, 02:37
  • 1
    Такой шаблон имеет смысл? ^[^=]*=.* –  Hauke Laging 30.05.2013, 23:36
  • 2
    Это означает: В начале строки может быть нуль или больше не - "=", сопровождается "=", сопровождаемый что. Для меня кажется странным использовать a ^ затем вообще. Хорошо, это имеет значение, если больше чем один "=" появляется в строке, поскольку Вы хотите "все после первого '='". –  Hauke Laging 30.05.2013, 23:54
  • 3
    Да, привязка ^ является лишним, так как мы знаем наверняка, что шаблон будет соответствовать в начале строки, так как строка выше отбрасывает все строки, которые не соответствовали бы. –  Stéphane Chazelas 30.05.2013, 23:59

Я думаю, что Вы ищете, уже обеспечивается командой blkid:

/dev/sda1: LABEL="SYSTEM_DRV" UUID="10BE12331238FD148" TYPE="ntfs" 
/dev/sda2: LABEL="Windows7_OS" UUID="5CF2E12AD3438B42" TYPE="ntfs" 
/dev/sda3: LABEL="Lenovo_Recovery" UUID="C43211B2399007C54" TYPE="ntfs" 
/dev/sda5: UUID="4835b90f-4845-1234-8dcd-fbcf332338f8" TYPE="ext4" 
/dev/sda6: UUID="av6WTb-CU69-4Ump-10dD-sudd-fTtC-Gf12AL" TYPE="LVM2_member" 
/dev/mapper/vg_grinchy-lv_root: UUID="75e0a75d-45d3-463c-bd87-9f7e123fd456" TYPE="ext4"

При попытке получить тот определенный список информации, можно получить его использование blkid -o list и некоторые awk команды как так:

$ blkid -o list|tail -n +3|awk '{print "\""$3"\"", $1}'|sed 's/(not//'|column -t
"SYSTEM_DRV"       /dev/sda1
"Windows7_OS"      /dev/sda2
"Lenovo_Recovery"  /dev/sda3
"/boot"            /dev/sda5
""                 /dev/sda6
"/"                /dev/mapper/vg_grinchy-lv_root
"<swap>"           /dev/mapper/vg_grinchy-lv_swap
"/home"            /dev/mapper/vg_grinchy-lv_home

Посмотрите blkid страница справочника для получения дополнительной информации.

1
28.01.2020, 02:37
awk '$4 ~ /^sd[a-z][1-9][0-9]?/ {label="";
  cmd="blkid -o value -s LABEL /dev/" $4;
  cmd | getline label;
  printf "\"%s\": /dev/%s\n",label,$4;}' /proc/partitions
0
28.01.2020, 02:37
  • 1
    Отметьте это вопреки udisks, Вам нужен доступ для чтения к устройствам для того (udev/udisks, действительно звонят blkid заполнить базу данных, которую все могут запросить). Обратите внимание, что это возвращает маркировку файловой системы. Разделы (как GPT) могут также иметь маркировку. –  Stéphane Chazelas 30.05.2013, 23:20

Теги

Похожие вопросы