Удаление настроек из каталога ~/.config вместе с deb-пакетом

Рейтинг: 0Ответов: 2Опубликовано: 19.07.2023

Для хранения настроек программа использует каталог ~/.config/ProgramName. Я хочу чтобы при полном удалении командой sudo apt-get purge ProgramName также удалялась папка с настройками. Написал вот такой postrm сценарий:

#!/bin/sh -e

case "$1" in
    purge)
        rm -r ~/.config/ProgramName
    ;;

    *)
    ;;
esac

exit 0

При удалении ошибка:

rm: невозможно удалить '/root/.config/ProgramName': Нет такого файла или каталога

Почему-то ищет каталог в папке суперпользователя, а не текущего пользователя. При использовании команды rm -r $HOME/.config/AutoScreenshot всё тоже самое.

Как это исправить?

Ответы

▲ 1Принят

Вариант из предыдущего ответа в принципе неплох, но шелл фильтровать по nologin не совсем корректно. Там может быть к примеру /bin/false

Более логичным кажется грепать шелл, аналогичный текущему.

Если немного допилить предыдущий ответ, обход всех домашних каталогов будет выглядеть примерно так

for i in $(getent passwd | grep "$SHELL" | cut -d: -f6); do echo "rm -f -r $i/.config/ProgramName"; done
▲ 0

получить домашние каталоги пользователей можно так

getent passwd | grep -v 'nologin$' | cut -d: -f6

при удалении используй ключ -f чтоб не было ошибки.