apt-get
и dpkg
вызывают ldconfig
для восстановления кэша.
Я предполагаю, что это делается в конце каждой массовой операции, но точно не знаю.
Я не думаю, что есть способ удалить определенные данные из кеша, он просто перестроен, например:
rm /etc/ld.so.cache
ldconfig
Вы можете использовать ldconfig -p
для проверки содержимого кеша.
В моей системе ldconfig
вызывается при каждой перезагрузке, но если для кэша используется /etc/
, то он не создается каждый раз с нуля; вам придется перестроить его самостоятельно, если вы хотите этого.
Если вы удалите некоторые библиотеки вручную, вам придется их пересобрать.
grep
можно использовать как команду условия. Она возвращает true при совпадении шаблона. Здесь вам нужен поиск по фиксированной строке (-F
) и, возможно, по всей строке (-x
):
if sudo cat /etc/sudoers |
grep -xqFe "$USER ALL=(ALL) NOPASSWD:ALL"
then
echo found
else
echo not found
fi
Или если конфигурация sudoers
позволяет запускать команду grep
в дополнение к cat
:
if sudo grep -xqFe "$USER ALL=(ALL) NOPASSWD:ALL" /etc/sudoers
then
echo found
else
echo not found
fi
-q
говорит grep
быть тихим, просто возвращать статус true/false через статус выхода, но не выводить ничего на stdout.
Обратите внимание, что конфигурация sudoers может включать другие конфигурационные файлы, которые этот подход не будет учитывать. То же самое для разрешений, предоставленных группам, в которых состоит пользователь.
Вместо этого вы можете использовать sudo -lU "$USER"
.