GNU mv имеет параметр - backup
, который может быть полезен. Следующее взаимодействие
показывает, что файлы переименовываются, когда целевой
существует:
$ touch a b c o
$ mv --backup=numbered --verbose a o
`a' -> `o' (backup: `o.~1~')
$ mv --backup=numbered --verbose b o
`b' -> `o' (backup: `o.~2~')
$ mv --backup=numbered --verbose c o
`c' -> `o' (backup: `o.~3~')
В этом примере исходный файл o
был переименован в o . ~ 1 ~
,
a
до o. ~ 2 ~
, b
до o. ~ 3 ~
и с
по или
. Таким образом, это не переименовывает
так, как это делает опубликованный вами код, но это может быть
приемлемым, в зависимости от ваших конкретных потребностей.
Одна из возможных причин заключается в том, что файл, который необходимо изменить, еще не существует.
Запустите сценарий вместо chown и chmod, который может проверять, существует ли цель, и может записывать информацию в файл журнала.
Я использовал действие change
вместо add
, и все работает:
ACTION=="change", SUBSYSTEM=="backlight", KERNEL=="radeon_b10", RUN+="/usr/bin/chgrp video /sys/class/backlight/%k/brightness"
ACTION=="change", SUBSYSTEM=="backlight", KERNEL=="radeon_b10", RUN+="/usr/bin/chmod g+w /sys/class/backlight/%k/brightness"