Вы можете использовать wget для загрузки всего веб-сайта. (если сервер разрешает это), как
$wget \
--recursive \
--no-clobber \
--page-requisites \
--html-extension \
--convert-links \
--restrict-file-names=windows \
--domains website.org \
--no-parent \
Подробнее [wget manpage]
Источник: wget manpage
Вы попросили пошаговое объяснение, вот так:
sudo dpkg -l 'linux-*'
Перечисляет пакеты, начиная с linux- в имени пакета
| sed
и pipe список в sed
"s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'
, который будет использовать очень сложное регулярное выражение для редактирования списка
| xargs
, который переводит новый список в xargs, который отправит его в качестве аргумента в
sudo apt-get -y purge
, который очистит эти пакеты, не давая вам шанса передумать.
Или, возможно, более точно сказать, что он отправит это перейдите в команду очистки и оставьте это на этом. Независимо от того, очищено или нет, и что важно - именно то, что очищено, зависит от вывода предыдущих команд.
Безопасно? В этом случае все зависит от того, насколько хорошо автор сообщения, в котором вы его нашли, понимает регулярные выражения и синтаксис sed. И на обеих этих темах есть целые книги.
Я начал, анализируя команды, читая страницу man для каждого.
dpkg -l: список pacakges, поэтому dpkg -l linux-* отобразит все пакеты, начатые с linux- (обычно ядра). sed: выход dpkg -l linux-* передается по каналу sed с несколькими регулярными выражениями, которые декодирует sed. uname -r uname печатает системную информацию uname - печатать системную информациюдескриптор -r специально печатает версии ядра:
uname - print system information
-r, --kernel-release распечатать версию ядра
Затем вывод uname -r передается по каналу sed с более регулярными выражениями , выход которого передается на xargs
-y, --yes, --assume-yes Automatic yes to prompts; предположите «да» в качестве ответа на все приглашения и выполняйте неинтерактивно. Если возникает нежелательная ситуация, например, изменение удерживаемого пакета, попытка установить пакет без проверки подлинности или удаление необходимого пакета, apt-get будет прерван. Элемент конфигурации: APT :: Get :: Предположим-Да.Итак, xargs переводит вывод sed в имена пакетов и передает их на sudo apt-get purge -y, который автоматически отвечает «да» на все приглашения:
В целом кажется, что эта команда будет делай то, что хочешь, хотя, конечно, нам нужно было бы перевести регулярные выражения sed.
dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'
Я только что побежал:
вот скриншот: