Kubuntu 18.04: Como o gerenciador de arquivos do Dolphin classifica os arquivos “naturalmente”?

0

Eu tenho os seguintes arquivos:

$ 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
$ 

Eu usei ls -1 sozinho ou foi precedido por várias opções de LANG= e a ordem dos arquivos é a seguinte:

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      

Mas quando eu uso a opção Natural sorting (Dolphin Preferences > Geral > Modo de Ordenação) do Dolphin 17.12.3 que é a versão padrão do Kubuntu 18.04, recebo uma ordem de classificação diferente, como mostrado no Name coluna na imagem abaixo:

Minhapergunta:comooDolphinconsegueessetipodeclassificação?

O Manual do Dolphin não tem muito a dizer:

Sorting Mode controls how items are sorted in the view. If Natural sorting is enabled, the sort order of three example files will be

File1,

File2,

File10.

If this option is disabled, the normal alphabetical sorting case sensitive or case insensitive will be used, which leads to the sort order

File1,

File10,

File2.

    
por DK Bose 26.05.2018 / 09:27

2 respostas

1

"Classificação natural" detecta números em nomes de arquivos e usa classificação numérica nesta parte dos nomes de arquivos, portanto 010.txt e 10.txt vêm depois de 4.txt (10 > 4).

1 < 2 < 10, então mov001 e mov01A vêm antes de mov002 e mov010.

0 < 1 < 10, portanto _0mov00A < _1mov00A < _010.txt

etc.

    
por muclux 26.05.2018 / 10:42
0

Classificação para seres humanos: ordem de classificação natural , discute a utilidade da classificação natural mas não lida com a forma como nomes de arquivos com um _ estão listados antes de outros arquivos.

As respostas para Como faço para classificar ls sublinhar os caracteres primeiro? resolva o problema principal _ .

Uma solução usando a expansão do shell para ignorar qualquer classificação por ls :

ls -lf _* [!_]*

Então, para os arquivos da pergunta,

ls -lf -1 _* [!_]*

fornece o mesmo resultado de classificação que o tipo natural do Dolphin:

$ 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
$ 

Eu não sei se este é exatamente o mesmo mecanismo que o Dolphin incorpora para fornecer ordenação natural.

    
por DK Bose 26.05.2018 / 14:33