【问题标题】:What sort order does Linux use?Linux 使用什么排序顺序?
【发布时间】:2014-09-08 05:00:00
【问题描述】:

我的 Bash 脚本按字母数字顺序在文件夹中运行。但事实证明,它与我在 Mac OS 文件夹中的顺序不同。所以现在我想知道Linux使用什么排序顺序,可以改变吗?我可以只为我的 Bash 脚本更改它吗?假设我想在 Bash 脚本中运行视频播放器,按字母数字顺序运行文件夹中的所有视频,我可以在脚本中指定它应该是什么字母数字顺序吗?

【问题讨论】:

  • 排序顺序取决于locale,可以通过环境变量LC_ALL来设置。
  • 请举一些例子。

标签: linux bash sorting


【解决方案1】:

许多命令(包括bash glob、lssort)的排序顺序取决于您当前的语言环境设置。

您可以通过设置LC_COLLATE 环境变量强制排序。将其设置为 C 将对 byte 值进行比较。

在我的系统上(en_US.utf8):

sh$ touch eleve
sh$ touch élève
sh$ touch Eleve 
sh$ touch Élève
sh$ touch äkta
sh$ touch österreich

sh$ ls
äkta  eleve  Eleve  élève  Élève  österreich  pommes

sh$ LC_COLLATE=fr_FR.utf8 ls
äkta  eleve  Eleve  élève  Élève  österreich  pommes

sh$ LC_COLLATE=sv_SE.utf8 ls
eleve  Eleve  élève  Élève  pommes  äkta  österreich

sh$ LC_COLLATE=C ls
Eleve  eleve  pommes  Élève  äkta  élève  österreich

【讨论】:

  • 我可以永久更改它吗? LC_COLLATE 在哪里?
  • @Paolo,将其添加到您的 ~/.bash_profile(或 ~/.profile 如果您使用它):export LC_COLLATE=C(或其他任何内容
猜你喜欢
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 2015-06-23
  • 2016-03-30
  • 2013-08-07
  • 2020-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多