Ноутбук просыпается при закрытии крышки

«Простое» решение

ls -1 / Dropbox / apache2-backup - * следует упорядочивать в алфавитном порядке по имени, то есть по дате (поскольку дата форматируется с помощью старшей цифры слева). Затем вы можете получить самый старый, перейдя по конвейеру к head -1 (при условии, что в именах файлов нет новых строк). Как правило, использование конвейера из ls - плохая идея, но в этом случае все будет хорошо, поскольку вы знаете, что в именах файлов нет специальных символов.

mv "$(ls -1 /Dropbox/apache2-backup-* | head -1)" /root/Dropbox-archive/

Я бы, вероятно, также рекомендовал использовать вместо него mv --no-clobber (или mv -n ), чтобы случайно не перезаписать файлы.

«Правильное» решение

Если вас действительно беспокоят специальные символы, вы можете использовать вместо них следующее.

to_move="$(find /Dropbox -maxdepth 1 -type f -name 'apache2-backup-*' -print0 | sort -z | tr '\0\n' '\n\0' | head -1 | tr '\0\n' '\n\0')"
mv "$to_move" /root/Dropbox-archive/

Объяснение

  • find / Dropbox -maxdepth 1 -type f -name 'apache2-backup- *' -print0 : вернуть обычные файлы ( -type f ) в / Dropbox без перехода в подкаталоги ( -maxdepth 1 ), соответствующие шаблону -name 'apache2-backup - *' . Разделить символом нуля вместо символа новой строки -print0 .
  • | sort -z : sort на основе нулевого символа (примечание: не все виды могут это сделать).
  • | tr '\ 0 \ n' '\ n \ 0' : поменять местами ноль и новые строки для обработки заголовком.
  • | head -1 : вернуть первую строку.
  • | tr '\ 0 \ n' '\ n \ 0' : поменять местами ноль и новую строку обратно.
  • mv "$ to_move" / root / Dropbox-archive / : двигайтесь!

Или в одной строке:

mv "$(find /Dropbox -maxdepth 1 -type f -name 'apache2-backup-*' -print0 | sort -z | tr '\0\n' '\n\0' | head -1 | tr '\0\n' '\n\0')" /root/Dropbox-archive/
1
11.06.2018, 15:16
1 ответ

Наконец-то я нашел ошибку, мой ноутбук — HP Spectre 13 v001nf. Для будущих пользователей:

Вы должны добавить это в свой rc.local (, если у вас есть systemd add this имеет службу)

#!/bin/sh -e
for device in XHC PWRB
do
        if grep -q "$device.*enabled" /proc/acpi/wakeup
        then
                echo $device > /proc/acpi/wakeup
        fi
done
exit 0

И вуаля приостановка и спящий режим работают

2
27.01.2020, 23:43

Теги

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