Не знаю, будет ли это работать в Fedora, но в моей Ubuntu я мог добиться этого, просто отредактировав бин для skypeforlinux и добавив атрибут --force -device -scale -factor:
sudo nano /usr/bin/skypeforlinux
Изменено:
nohup "$SKYPE_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > "$SKYPE_LOGS/skype-startup.log" 2>&1 &
К:
nohup "$SKYPE_PATH" --force-device-scale-factor=1.3 --executed-from="$(pwd)" --pid=$$ "$@" > "$SKYPE_LOGS/skype-startup.log" 2>&1 &
Используйте readarray
для считывания имен в массив names
. Затем зациклите каждый из элементов массива, чтобы выполнить команду find
.
readarray names < names.txt
for n in ${names[@]};do
find. -type f -name "${n}.iso"
done
Вы можете выполнить проверку "или" вfind
:find. -name a -o -name b...
.
Итак, модифицируя ваш файл, добавляя переключатели и используя xargs
для создания команды поиска:
awk 'NR > 1 {print "-o"}; {print "-name", $0".iso"}' input-file | xargs find.
Для достаточно маленького списка должен выполняться только один find
. Если в именах файлов есть пробелы, кавычки или другие специальные символы, рассмотрите возможность использования записей, разделенных нулевым символом ASCII (. В этом случае для изменения ввода можно использовать GNU sed ).
Было бы проще сzsh
:
names=(${(f)"$(<name-list.txt)"})
ls -ld -- **/(${(~j[|])names}).iso(D)
Где:
$(<file)
оператор стиля ksh -, который расширяется до содержимогоfile
f
помечает разбиения в строке f
, поэтому мы сохраняем в $names
строки изname-list.txt
j[|]
:объединяет элементы массивов с помощью с|
~
рассматривает это |
как оператор глобуса (здесь для чередования )вместо литерала |
. **/
:рекурсивная подстановка (поиск на любом уровне подкаталогов ). (D)
:квалификатор glob, который позволяетdotglob
(включать скрытые файлы и выполнять поиск внутри скрытых каталогов, как find
сделал бы )для этого одного glob.