Направлять не пустой вывод в файл

Pre Ubuntu LTS 16.04

В (X) Ubuntu 14.04 LTS, управление яркостью на моем Panasonic Toughbook CF-52 используется для работы отлично, добавив acpi_osi=Linux к линии GRUB_CMDLINE_LINUX_DEFAULT= в /etc/default/grub :

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux"

и выдает

$ sudo update-grub

после редактирования и перед перезагрузкой.

Поскольку Ubuntu LTS 16.04

Однако выше решение перестало работать после обновления до (X) Ubuntu LTS 16.04. Это кажется типичным для ноутбуков со встроенной видеографикой Intel.

Чтобы узнать, были ли вы интегрированы видеокарты Intel, введите следующую команду:

$ ls /sys/class/backlight/
    intel_backlight  panasonic

Как минимум intel_backlight следует упомянуть, скорее всего, в дополнение к OEM-имени, например, panasonic, dell_backlight и т. д.

Если это так, приступайте к созданию следующего файла

[ f4]

, содержащий следующие строки:

Section "Device"
        Identifier  "card0"
        Driver      "intel"
        Option      "Backlight"  "intel_backlight"
        BusID       "PCI:0:2:0"
EndSection

Перезагрузите и наслаждайтесь кнопками подсветки!

Panasonic Toughbook CF-52 [!d13 ]

0
задан 23 February 2018 в 09:47

4 ответа

Утилита ifne из пакета moreutils должна выполнить то, что вы хотите:

$ find . -name 'bb' | ifne tee file

На странице man:

Описание ifne выполняет следующую команду, если и только если стандартный ввод не пуст.
4
ответ дан 17 July 2018 в 20:19

Используйте параметр -exec, который будет работать только при обнаружении файлов:

find . -name 'bb' -exec sh -c 'printf "%s\n" "$@" | tee -a file' sh {} +

Объяснение:

printf "%s\n" "$@" Печать каждого аргумента с завершающей новой строкой. sh Второй аргумент sh -c присваивается $0. {} + В качестве аргументов -exec они обозначают «все выбранные файлы». sh -c присваивает их $1, $2 и т. д.
3
ответ дан 17 July 2018 в 20:19

Утилита ifne из пакета moreutils должна выполнить то, что вы хотите:

$ find . -name 'bb' | ifne tee file

На странице man:

Описание ifne запускает следующую команду, если и только если стандартный ввод не пуст.
4
ответ дан 23 July 2018 в 21:01
  • 1
    Ницца - узнайте что-нибудь каждый день;) – steeldriver 21 February 2018 в 17:26
  • 2
    Tnx, но я хочу что-то без ifne, поскольку я не могу добавить из пакетов – Josef Klimuk 21 February 2018 в 18:06

Используйте параметр -exec, который будет работать только при обнаружении файлов:

find . -name 'bb' -exec sh -c 'printf "%s\n" "$@" | tee -a file' sh {} +

Объяснение:

printf "%s\n" "$@" Печать каждого аргумента с завершающей новой строкой. sh Второй аргумент sh -c присваивается $0. {} + В качестве аргументов -exec они обозначают «все выбранные файлы». sh -c присваивает их $1, $2 и т. д.
3
ответ дан 23 July 2018 в 21:01
  • 1
    tee -a будет более уместным. – muru 23 February 2018 в 09:27
  • 2
    @muru Не так ли? Что делать, если OP хочет специально перезаписать файл? – wjandrea 23 February 2018 в 09:31
  • 3
    Только для редкого случая, когда пути достаточно длинны, чтобы sh выполнялся дважды (или более) – muru 23 February 2018 в 09:37
  • 4
    @muru А, я не думал об этом. – wjandrea 23 February 2018 в 09:41

Другие вопросы по тегам:

Похожие вопросы: