setlocale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
$ strace -e status=failed -f locale
18:17:15.470930 openat(AT_FDCWD, "/usr/lib/locale/en_US.UTF-8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000032>
18:17:15.471098 openat(AT_FDCWD, "/usr/lib/locale/en_US.utf8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000030>
18:17:15.471251 openat(AT_FDCWD, "/usr/lib/locale/en_US/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000030>
18:17:15.471403 openat(AT_FDCWD, "/usr/lib/locale/en.UTF-8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000029>
18:17:15.471552 openat(AT_FDCWD, "/usr/lib/locale/en.utf8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000029>
18:17:15.471700 openat(AT_FDCWD, "/usr/lib/locale/en/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) <0.000029>
locale: Cannot set LC_ALL to default locale: No such file or directory
$ pacman -Qo /usr/lib/locale
/usr/lib/locale/ is owned by glibc 2.32-2
$ sudo pacman -Sy glibc
$ locale
## 已正常
结论: 重装 glibc 即可