Что делают эти опции в dpkg-divert и sed в связи с перенаправлением пакетов Nvidia?

У меня нет доступа к HP -UX, но в Solaris или любой системе BSD (, т.е. без использования GNU find), следующее будет работать:

find. -type f -cmin +15 -print -exec rm {} +

Это позволит найти все обычные файлы в текущем каталоге или ниже него, чье последнее изменение статуса индексного дескриптора произошло более 15 минут назад. Пути этих файлов будут отображаться, а затем файлы будут удалены.

Чтобы получить интерактивное подтверждение перед удалением чего-либо, используйте

find. -type f -cmin +15 -print -ok rm {} ';'

Большинство файловых систем Unix не отслеживают время создания файла . Предикат -cminдля findбудет сравниваться с ctime файла, т. е. «временем изменения» индексного дескриптора. Если индекс файла не изменился с момента его создания, то это будет его «время создания». Временная метка ctime обновляется при создании файла и изменении прав собственности или разрешений. Изменение содержимого файла также обновляет эту метку времени.

0
12.05.2020, 14:22
1 ответ
LC_MESSAGES=C dpkg-divert --list '*nvidia-340*'

перечисляет все отклонения, соответствующие шаблону глобуса *nvidia-340*, на английском языке, так что вывод имеет вид «перенаправление от... к... посредством...».

sed -nre 's/^diversion of (.*) to.*/\1/p'

извлекает текст между «переадресацией» и «кому», т. е. имя перенаправленных файлов. -nreэквивалентно -n -r -e; -nотключает автоматический вывод пространства шаблонов, поэтому ничего не выводится, если только это не запрошено командой p(см. конец команды sed); -rвключает расширенные регулярные выражения; и -eпредставляет сценарий, который мы хотим запустить. В регулярном выражении ^diversion ofсоответствует «перенаправлению» (, включая пробел )в начале строки; (.*)соответствует любому количеству символов и создает группу соответствия; to.*соответствует « to » (, включая начальные и конечные пробелы ), за которыми следует любой символ. Это используется в команде sдля замены полного текста только \1, содержимым группы соответствия (, т. е. текстом между «diversion of» и «to» ). Последняя команда pпечатает пространство шаблонов, если команда sсовпала.

xargs -rd'\n' -n1 -- sudo dpkg-divert --remove

запускает sudo dpkg-divert --removeдля каждого файла, выведенного на предыдущем шаге, удаляя соответствующее отклонение.

sudo apt --fix-broken install

пытается исправить все сломанные зависимости.

2
28.04.2021, 23:14

Теги

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