如何通过命令行卸载一个语言环境?

我系统上有5个未使用的区域设置。如何通过命令行删除它们?我尝试了localepurge,但没有起作用。
1个回答

您可以使用以下命令列出区域设置:
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-8en_US.UTF-8 这两个语言环境。在末尾加上 && echo 'Success!' 是有用的,因为如果在命令行中传递了一个不可用或错误的语言环境,locale-gen 不会报告错误。


12.04的命令是localedef --list-archive,不带s - anatoly techtonik
@techtonik:这在11.10版本中也是如此,我的错误 :) - enzotib
好的。有没有办法仅删除我不需要的区域设置?我不确定哪些 en_US 区域设置被使用 - 我更倾向于保留它们所有,只删除那些我绝对确定在我的系统上没有用处的,比如 de_*。 - anatoly techtonik
7在bash中,"Succes!"字符串中的感叹号会触发bash历史扩展。为了避免这个问题,你必须将'Success!'放入单引号中,或者(奇怪地!)删除引号。根据bash手册历史扩展是通过历史扩展字符的出现来引入的,默认情况下该字符是‘!’。只有\ '可以用来转义历史扩展字符。 - Michele
7--purge在我的情况下不起作用,并且没有记录... - Loenix
对我来说也不起作用 - Ramon Suarez
在我的系统(Ubuntu 22.04)上,我大约有24个区域设置(通过localedef --list-archive列出)-其中一个是捷克语cs_CZ.utf8,其余的只是英语的变体,例如en_CA.utf8en_GB.utf8en_US.utf8等等。但是当我运行BleachBit(一个图形界面的文件清理工具)时,它在各个位置(例如/usr/share/man//usr/share/help/)找到了各种语言的区域设置和本地化文件,这些语言并未在localedef的列表中列出,总共约500 MB的数据。我不确定为什么它们会被安装,也许是一些安装程序没有检查启用了哪些区域设置? - undefined