Почему бы не сделать что-то вроде следующего?
user="foo"
group="bar"
perm=741
for dir in $(cat dirname.txt); do
mkdir ${dir}
chown ${user}:${group} ${dir}
chmod -R ${perm} ${dir}
done
Я считаю, что лучше использовать переменные, чтобы упростить будущие изменения. Итерацию списка каталогов вместо одного лайнера также легче поддерживать
Карта ядра Linux показывает некоторые детали управления устройством. Он содержит так называемые «драйверы» и «модули », которые можно расширить с помощью «Загружаемых модулей ядра».
Е.Г. :USB-устройства обычно имеют модуль, который загружается при подключении устройства, в то время как корневой концентратор USB статически связан с ядром, а для карты nVidia требуется драйвер, загруженный с nVidia.
Вот почему большинство дистрибутивов работает на самых разных аппаратных средствах, но не обязательно на всех очень новых аппаратных средствах, для которых может потребоваться отдельный модуль или драйвер.
Дополнительную информацию о различиях между драйвером и модулем смотрите здесь
Как ядро узнает, какие модули загружать, углубляется в аппаратный уровень, и делает это путем перечисления:
Драйверы устройств (, т. е. часть ядра, непосредственно взаимодействующая с оборудованием ), могут быть скомпилированы как модули ядра. Это отдельные файлы, которые могут быть загружены или выгружены ядром по мере необходимости, в зависимости от имеющегося в системе оборудования.
Универсальные ядра, которые поставляются с основными дистрибутивами Linux, как правило, поставляются со всеми драйверами для каждой мыслимой части оборудования, скомпилированной в виде модулей. Таким образом, когда ядро загружается в данной системе, оно исследует и определяет, какое аппаратное обеспечение установлено в системе, а затем дает указание программе пользовательского пространства udev
загрузить любые модули ядра, необходимые для конкретного аппаратного обеспечения.