sudo udevadm trigger --verbose --action=remove --property-match='DEVNAME=/dev/sdd'
инициирует событие /dev/sdd
remove uevent, содержимое как
remove@/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/host13/target13:0:0/13:0:0:0/block/sdd
ACTION=remove
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/host13/target13:0:0/13:0:0:0/block/sdd
SUBSYSTEM=block
MAJOR=8
MINOR=48
DEVNAME=sdd
DEVTYPE=disk
SEQNUM=12589
strace
это посмотри, что он дозирует:
sudo strace udevadm trigger --verbose --action=remove --property-match='DEVNAME=/dev/sdd'
...
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 37),...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc0596a7000
write(1, "/sys/devices/pci0000:00/0000:00:"..., 101/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/host13/target13:0:0/13:0:0:0/block/sdd
) = 101
open("/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/host13/target13:0:0/13:0:0:0/block/sdd/uevent", O_WRONLY) = 3
write(3, "remove", 6) = 6
close(3) = 0
exit_group(0) = ?
+++ exited with 0 +++
на самом деле это только
echo 'remove' | sudo tee /sys/block/sdd/uevent
таким образом все еще зависит от sysfs:
файл sysfs uevent:
cat /sys/block/sdd/uevent
MAJOR=8
MINOR=48
DEVNAME=sdd
DEVTYPE=disk
ссылки:
http://fibrevillage.com/sysadmin/93-udevadm-useage-exampleshttp://arakilab.media.eng.hokudai.ac.jp/~msylw/2013/07/using-udev-to-trigger-events-in-example/
Предполагая, что вы хотите добавить к JSON, который вы показываете, и что документ JSON правильно сформирован,
$ cat file.json
{
"access": {
"allowed_users": [
"admin",
"test"
]
}
}
ты можешь сделать
$ jq '.access.allowed_users |=. + ["test32"]' file.json
{
"access": {
"allowed_users": [
"admin",
"test",
"test32"
]
}
}
Это взято непосредственно из jq
руководства, из раздела "Сложные назначения". Он использует «оператор модификации» |=
для изменения массива, присваивая ему новый элемент.
С новым значением в переменной оболочки:
$ data='My "awesome" data'
$ jq --arg value "$data" '.access.allowed_users |=. + [$value]' file.json
{
"access": {
"allowed_users": [
"admin",
"test",
"My \"awesome\" data"
]
}
}
Чтобы внести эти изменения в файл, используйте временный файл:
jq...one-of-the-above-approaches... file.json >tmp.json &&
mv tmp.json file.json
&&
предотвращает перезапись исходного файла, если jq
по какой-то причине дает сбой.