Как я могу удалить локаль через командную строку?

23

В моей системе 5 неиспользуемых локалей. Как я могу удалить их через командную строку? Я использую, localepurgeно это не сработало.

Eonil
источник

Ответы:

26

Вы можете перечислить локали с помощью

localedef --list-archive

или с

locale -a

Соответствующий размер файла определяется как

ls -lh /usr/lib/locale/locale-archive

Для удаления неиспользуемых локалей вы можете сделать

sudo locale-gen --purge it_IT.UTF-8 en_US.UTF-8 && echo Success!

где it_IT.UTF-8и en_US.UTF-8являются только две локали я хочу . В && echo "Success!"конце полезно, потому locale-genчто не сообщает об ошибках, если в командной строке передается недоступный или неправильный языковой стандарт.

enzotib
источник
Команда на 12.04 localedef --list-archiveбезs
анатолий техтоник
@techtonik: так же и в 11.10, моя ошибка :)
enzotib
Ницца. Есть ли способ удалить только те локали, которые мне не нужны? Я не уверен, какой из языков en_US используется - я предпочитаю оставить их все и удалить только те, которые, я абсолютно уверен, бесполезны в моей системе, такие как de_ *.
анатолий техтоник
7
На bash восклицательный знак в "Succes!"строке запускает расширение истории bash. Чтобы избежать этой проблемы, вы должны включить 'Success!'в одинарные кавычки или (как ни странно!) Удалить кавычки. Из руководства bash : Расширения истории вводятся с появлением символа расширения истории, который является '!' по умолчанию. Только \ и 'может использоваться для выхода из символа расширения истории.
Мишель