首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kubuntu18.04: Dolphin文件管理器如何“自然”地对文件进行排序?

Kubuntu18.04: Dolphin文件管理器如何“自然”地对文件进行排序?
EN

Ask Ubuntu用户
提问于 2018-05-26 07:27:35
回答 2查看 1.6K关注 0票数 3

我有以下文件:

代码语言:javascript
运行
复制
$ ls
_010.txt  01.txt    10.txt    1.txt  3.txt  mov001  mov00a  _mov00A  mov00B  mov01A
010.txt   _0mov00A  _1mov00A  2.txt  4.txt  mov002  mov00A  mov00aA  mov010
$ 

我使用了ls -1本身或前面有各种LANG=选项,文件的顺序如下所示:

代码语言:javascript
运行
复制
ls -1                 |                 
ls -1 LANG=en_GB.utf8 |  ls -1 LANG=C   
ls -1 LANG=en_US.utf8 |  ls -1 LC_ALL=C  
---------------------------------------
       _010.txt       |     01.txt      
       010.txt        |     010.txt     
       01.txt         |     1.txt       
       _0mov00A       |     10.txt      
       10.txt         |     2.txt       
       _1mov00A       |     3.txt       
       1.txt          |     4.txt       
       2.txt          |     _010.txt    
       3.txt          |     _0mov00A    
       4.txt          |     _1mov00A    
       mov001         |     _mov00A     
       mov002         |     mov001      
       mov00a         |     mov002      
       mov00A         |     mov00A      
       _mov00A        |     mov00B      
       mov00aA        |     mov00a      
       mov00B         |     mov00aA     
       mov010         |     mov010      
       mov01A         |     mov01A      

但是,当我使用海豚17.12.3的Natural sorting选项(海豚首选项>常规>排序模式)(这是Kubuntu18.04的默认版本)时,我得到了一个不同的排序顺序,如下图中的Name列所示:

我的问题是:海豚是如何实现这种分类的?

海豚手册没有什么可说的:

排序模式控制如何在视图中排序项。如果启用了自然排序,那么三个示例文件的排序顺序将是File1、File2和File10。如果禁用此选项,将使用正常的字母排序区分大小写或不区分大小写,这将导致排序顺序File1、File10、File2。

EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2018-05-26 12:33:04

人类排序:自然排序顺序,讨论了自然排序的有用性,但没有讨论如何在其他文件之前列出带有前导_的文件名。

如何首先使ls排序下划线字符?的答案解决了主要的_问题。

使用壳膨胀绕过ls排序的解决方案有:

代码语言:javascript
运行
复制
ls -lf _* [!_]*

所以,对于问题中的文件,

代码语言:javascript
运行
复制
ls -lf -1 _* [!_]*

提供与海豚的自然排序相同的排序结果:

代码语言:javascript
运行
复制
$ ls -lf -1 _* [!_]*
_010.txt
_0mov00A
_1mov00A
_mov00A
010.txt
01.txt
10.txt
1.txt
2.txt
3.txt
4.txt
mov001
mov002
mov00a
mov00A
mov00aA
mov00B
mov010
mov01A
$ 

我不知道这是不是完全相同的机制,海豚合并,以提供自然排序。

票数 1
EN

Ask Ubuntu用户

发布于 2018-05-26 08:42:31

“自然排序”检测文件名中的数字,并在这部分文件名上使用数字排序,因此010.txt和10.txt位于4.txt (10 > 4)之后。

1<2< 10,mov001和mov01A优于mov002和mov010。

0<1< 10,因此_0mov00A < _1mov00A < _010.txt

等。

票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1040499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档