Рассматривали ли вы сценарий инициализации, который будет проверять эти устройства fb и скопировать xorg.conf на место, если они существуют, а затем удалить его, когда он выключится? Вы можете добавить его в порядок загрузки до того, как X или lightdm начнет работу, но после обнаружения адаптера DisplayLink и создания устройства. Скрипт инициализации довольно прост, поэтому он должен решить вашу проблему.
Вот пример скрипта, который пользователи find, выход которого передан в контур while:
find "/mnt/TV Shows/" -type f -name "fanart.jpg" | while IFS= read -r item; do
NAME="${item##*/}"
echo cp "$item" "/mnt/Wallpapers/Slideshow/${NAME%.*}-$((i++)).${NAME##*.}"
done
Удалите echo действие. Имя целевого файла будет состоять из: ${name of source file}-$((sequential number))-${extension of source file}
Нумерация начнется с 0, так как переменная $i не была предварительно инициализирована. Вы можете поставить i=1; до find, чтобы начать нумерацию с 1. Вот более сложный сценарий bash, который использует параметр globstart **, чтобы сделать рекурсивный поиск файла в папке. Если есть совпадение, файл будет скопирован в папку назначения. Вы можете выбирать между различными шаблонами имени файла назначения, изменяя внутреннюю (if-fi) часть скрипта.
#!/bin/bash
INPUT_PATH="/mnt/TV Shows"
INPUT_FILE_NAME="fanart.jpg"
OUTPUT_PATH="/mnt/Wallpapers/Slideshow"
shopt -s globstar
for item in "${INPUT_PATH}"/**; do
# If the item is a file and its name is equal to the INPUT_FILE_NAME
if [[ -f "$item" && "${item##*/}" == "$INPUT_FILE_NAME" ]]; then
# Compose OUTPUT_FILE name based on the parent directory name
INPUT_FILE_FULL_PATH="${item%/*}"
INPUT_FILE_PARENT_DIR="${INPUT_FILE_FULL_PATH##*/}"
OUTPUT_FILE_NAME="${INPUT_FILE_NAME%.*}-${INPUT_FILE_PARENT_DIR}.${INPUT_FILE_NAME##*.}"
# Remove 'echo' to execute the command !!!
echo cp "${item}" "${OUTPUT_PATH}/${OUTPUT_FILE_NAME}"
fi
done
Ссылки:
Удалите echo действие.Удалите echo действие.
Вот пример скрипта, который пользователи find, выход которого передан в контур while:
find "/mnt/TV Shows/" -type f -name "fanart.jpg" | while IFS= read -r item; do
NAME="${item##*/}"
echo cp "$item" "/mnt/Wallpapers/Slideshow/${NAME%.*}-$((i++)).${NAME##*.}"
done
Удалите echo действие. Имя целевого файла будет состоять из: ${name of source file}-$((sequential number))-${extension of source file}
Нумерация начнется с 0, так как переменная $i не была предварительно инициализирована. Вы можете поставить i=1; до find, чтобы начать нумерацию с 1. Вот более сложный сценарий bash, который использует параметр globstart **, чтобы сделать рекурсивный поиск файла в папке. Если есть совпадение, файл будет скопирован в папку назначения. Вы можете выбирать между различными шаблонами имени файла назначения, изменяя внутреннюю (if-fi) часть скрипта.
#!/bin/bash
INPUT_PATH="/mnt/TV Shows"
INPUT_FILE_NAME="fanart.jpg"
OUTPUT_PATH="/mnt/Wallpapers/Slideshow"
shopt -s globstar
for item in "${INPUT_PATH}"/**; do
# If the item is a file and its name is equal to the INPUT_FILE_NAME
if [[ -f "$item" && "${item##*/}" == "$INPUT_FILE_NAME" ]]; then
# Compose OUTPUT_FILE name based on the parent directory name
INPUT_FILE_FULL_PATH="${item%/*}"
INPUT_FILE_PARENT_DIR="${INPUT_FILE_FULL_PATH##*/}"
OUTPUT_FILE_NAME="${INPUT_FILE_NAME%.*}-${INPUT_FILE_PARENT_DIR}.${INPUT_FILE_NAME##*.}"
# Remove 'echo' to execute the command !!!
echo cp "${item}" "${OUTPUT_PATH}/${OUTPUT_FILE_NAME}"
fi
done
Ссылки:
Удалите echo действие.Удалите echo действие.