Как было сказано в комментариях, я использовал информацию о видеокарте и драйвере, полученную с помощью lshw -c video
, чтобы сузить область поиска.
$ls /sys/class/backlight/
ideapad
intel_backlight
Использование ideapad, которое, казалось, было системным по умолчанию, не имело никакого эффекта, но использование intel_backlight дало:
$echo 1000 | sudo tee /sys/class/backlight/intel_backlight/brightness
1000
Я обнаружил максимальную яркость через:
$cat /sys/class/backlight/intel_backlight/max_brightness
13046
Позже я нашел решение для получения xbacklight и, возможно, других инструментов для переключитесь на intel_backlight:
#in /etc/default/grub add acpi_backlight=vendor to GRUB_CMDLINE_LINUX_DEFAULT
GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_osi=Linux acpi_backlight=vendor"
$sudo update-grub
mkdir -p PDF
for f in *.pdf ; do
bn=$(basename -- "$f" .pdf)
[ -e "$bn.doc" ] && mv -- "$f" PDF/
done
Я оставлю это на ваше усмотрение rm -rf PDF /
- я предпочитаю оставлять неотменяемый шаг как можно позже в любой потенциально рискованной процедуре.
Если вы предпочитаете просто удалить их, то:
for f in *.pdf ; do
[ -e "$(basename -- "$f" .pdf).doc" ] && rm -f -- "$f"
done
Эта версия не требует установки промежуточной переменной «$ bn» - в любом случае работает ... первая версия IMO более «читабельна» и является также лучше, если у вас есть другие варианты использования базового имени файла.
Try
for i in `ls | awk '{print $1}' | cut -d'.' -f1 | uniq -d`
do
rm -r $PWD/$i".pdf"
done
Warning: Имя вашего файла должно содержать только одну точку(.) (т.е.,) finename.extension и должно выполняться в том же каталоге, если вы выполняете тот же сниппет.
Требуемая команда rename
:
Если используется rename
из util-linux
:
rename. _1. * .orig & & rename .orig "* .orig
Первый будет заменен первым вхождением .
с _ 1.
для всех файлов, оканчивающихся на .orig
. Второй удалит файл .orig
из имен файлов.
Если вы используете perl-rename (по умолчанию в системах на основе Debian), все проще, так как оно использует Perl Compatible Regular Expressions, так что вы можете сделать все за один шаг:
rename/(\.. * )\.orig/_ 1 $1/' * orig
Поскольку эта версия использует регекс будет соответствовать первому .
(\.
, .
нужно сбежать, поскольку ti означает "любой персонаж", который не сбежал), то все (. *
) до .orig
. Поскольку первый шаблон находится внутри круглых скобок, он "захватывается" и впоследствии может называться $1
. Поэтому замена заменяет все, что было ранее согласовано с _ 1
и захваченным шаблоном (первым расширением), и одновременно удаляет .orig
.
Команды можно объединить с найти
следующим образом:
find /example -name '*.orig' -exec rename . _1. {} +
find /example -name '*.orig' -exec rename .orig '' {} +
Или
find /example -name '*.orig' -exec rename 's/(\..*)\.orig/_1$1/'
Для этого не требуется найти
. Если все ваши файлы находятся в одном каталоге, вы можете использовать команды выше непосредственно, или, чтобы сделать его рекурсивным (предполагая, что вы используете bash):
shopt -s globstar ## make ** recurse into subdirectories
rename.ul . _1. **.orig && rename.ul .orig '' **.orig ## util-linux
rename 's/(\..*)\.orig/_1$1/' **orig ## perl rename
На самом деле, строго говоря, вам даже не нужно переименовать
. Можно сделать все в оболочке (см. здесь для объяснения возможностей манипуляции строками оболочки):
for file in **/*.orig; do
newname="${file%%.*}_1.${file#*.}"
mv "$file" "${newname/.orig/}"
done
Наконец, заметка на глобусах ( -имя
использует глобус, а не регулярное выражение ). *. * .orig
- это синтаксис Windows glob для "всего, что оканчивается на .orig
". Эквивалент и то, что следует использовать с найти
- * .orig
. Только *
соответствует любому, при использовании *. * .orig
имена файлов будут совпадать только с двумя расширениями, последним из которых является .orig
.
Если требуется что-то простое, неблокирующее, добавьте в/etc/rc.local следующее:
( sleep 60 && /path/to/command_or_script [opts] ) &
-121--66271- Нет смысла "сортировать" папку для удаления файлов. Можно выполнить сортировку по именам файлов с помощью ls -bU | sort
или обработать список для удаления нежелательных файлов.
Удалите все PDF-файлы, для которых существует DOC
для d в * .doc; do p = "$ {d/% .doc/.pdf}"; test -f "$ p" & & rm -f "$ p"; готово
Удаление всех PDF-файлов
rm -f * .pdf
Оба варианта обрабатывают имена файлов пробелами и другими странными символами в них. Протестировать решения можно путем замены rm
на echo rm
.
С помощью zsh
:
doc_base=(*.doc(:r)) && rm -f -- $^doc_base.pdf
Или:
setopt histsubstpattern # could go in ~/.zshrc
rm -f -- *.doc(:s/%doc/pdf)
Чтобы удалить все файлы pdf, если есть файл с тем же именем, но другим расширением (doc или другим):
setopt histsubstpattern extendedglob
rm -f -- *.*~*.pdf(:r:s/%/pdf)