Я не уверен точно, как узлы устройства создаются (т.е. точная последовательность событий, которые приводят к их созданию), но я вполне уверен, ядро создает базовые устройства для 63 /dev/ttyN
устройства (плюс /dev/tty
) внутренне, и udev
делает работу предоставления доступа к ним внутри /dev
(за исключением /dev/tty
и /dev/tty1
которые создаются /etc/init.d/udev-mount
с mknod
).
Я не думаю, что можно ограничить количество устройств ядра с помощью конфигурации.
Вот обходное решение, если Вы хотите ограничить количество устройств, которые появляются в Вашем /dev
все же. Создайте a /etc/udev/rules.d/99-my-tty-rules.rules
файл и помещенный что-то как следующее в нем:
KERNEL=="tty[2-9][0-9]", RUN="/bin/rm /dev/%k", OPTIONS+="ignore_device"
Это избавится от tty
файлы устройств пронумеровали 20 и выше.
Примечания:
rm
там выглядит действительно странным, но я не могу найти способ не создать узел во-первыхПопробуйте это
compgen -A function -abck | awk 'length($0) == 3'
(редактирование: это - встроенный удар, таким образом, необходимо выполнить его в ударе, и это сразу даст Вам список 3 символьных команд),
Быстрый и грязный метод, выполняющий итерации PATH
и проверка каждого каталога. Удостоверьтесь Ваш $PATH
что-то разумное перед выполнением.
save_IFS=$IFS
IFS=:
for dir in $PATH; do
for file in "$dir"/???; do # ??? for 3 letter name
if [ -x "$file" ]; then
printf %s\\n "$file"
fi
done
done
IFS=$save_IFS
printf
действительно ли немного является чрезмерным для той задачи, не так ли? Почему нет echo
?
– Warren Young
13.07.2012, 21:15
echo
, с тех пор echo
является чрезвычайно не портативным, когда передаваемые аргументы, которые похожи на опции или содержат обратные косые черты. В этом случае echo
был бы, вероятно, прекрасен потому что в любой разумной системе первый символ $dir
был бы /
, хотя путь мог все еще содержать `, so
printf' еще лучше. Как это чрезмерно? Я едва думаю различие в вопросах эффективности для этой задачи. Несколько дополнительных символов ввода сохраняют меня мозговые циклы определения когда передающие переменные непосредственно к echo
безопасно.
– jw013
13.07.2012, 21:31
echo $IFS
и получил пустую строку. $
– Kyle Tolle
13.07.2012, 21:34
printf
более гибко, и намного более последователен, чем echo
. Я согласовываю это echo
почти наверняка хорошо работал бы в этом случае. Оба echo
и printf
встроенные команды, по крайней мере, в ударе.
– Keith Thompson
13.07.2012, 23:43
sed 's,.*/,,' | sort -u
удалить имена каталогов и дубликаты полосы, и затем возможно, через fmt
таким образом, вывод соответствует на моем экране.
– Keith Thompson
13.07.2012, 23:45