Вы также можете использовать подсистему udev для установки параметров, когда устройство подключено или загружается машина.
Например, вот как я установил частоту линии электропитания на моем Logitech HD Pro C920 Веб-камера, которая, по словам lsusb, имеет USB-ID 046d:082d.
Как пользователь root создает новый читаемый во всем мире файл /etc/udev/rules.d/99-local-webcam.rules. Он содержит:
SUBSYSTEM=="video4linux", SUBSYSTEMS=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="082d", PROGRAM="/usr/bin/v4l2-ctl --set-ctrl power_line_frequency=1 --device /dev/%k"
Вы можете следовать одному и тому же рецепту, изменяя идентификатор USB и параметры lsusb в соответствии с вашими точными потребностями. Вы можете проверить параметры v4l-ctl из командной строки, пока вам не станет удобно, что они будут работать, а затем поместите этот текст в файл правил udev.
Преимущество этого подхода в том, что он «просто работает», , Каждый раз, когда устройство подключается, применяются настройки. Если вы являетесь системным администратором для многих машин, тогда вы можете выталкивать файлы правил для всего оборудования вашего учреждения, они не используются до тех пор, пока этот USB-ID не будет подключен к аппарату.
Предполагая:
В файле CSV есть один столбец. В строке есть одно имя папки. Первая строка - это заголовок и ее следует игнорировать. Тогда такой цикл должен работать:
tail -n +2 file.csv | while read dirname; do cp -r "$dirname" /path/to/target/; done
Примечания:
CSV-файл имеет один столбец . Цикл while читает имена папок по очереди и для каждой строки выполняется cp -rВы можете выбрать подмножество с разбиением массива bash, используя следующий фрагмент кода:
#!/bin/bash
a=(`tail -n +2 folders.csv`);
b=("${a[@]:$1:$2}");
for i in "${b[@]}"
do
cp -r master_directory/"$i"/ new_path/;
done
Эта строка b=("${a[@]:$1:$2}"); позволяет передавать 2 аргумента в ваш скрипт и выбирать только папки между этими аргументы, например, если вы наберете:
$ bash script.sh 1 3
сценарий будет выбирать только папки между строкой 1 и строкой 3 (после игнорирования строки заголовка). В вашем случае он выберет 505, 666, 900 папок.