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/
Наконец-то я нашел ошибку, мой ноутбук — 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
И вуаля приостановка и спящий режим работают