Posso incluir todos os arquivos em um diretório de “1”, “2”,…, “9”, “10”, “11”,…, “20”, “21”,…?

2

Eu tenho um diretório com arquivos chamados "1", "2", ..., "9", "10", "11", ..., "20", "21", ... .

Posso listá-los na ordem de "1", "2", ..., "9", "10", "11", ..., "20", "21", ... ?

Eu tentei ls -ls . Ele não lista os arquivos dessa forma, mas sim "1", "10", "11", ..., "19", "2", "20", "21", .... Eu acho que um recurso como esse será útil às vezes.

    
por Tim 12.04.2013 / 19:17

2 respostas

5

Com o GNU ls (como encontrado na maioria das distribuições do Linux), você pode usar ls -v , onde -v , da man page

 -v     natural sort of (version) numbers within text
    
por 12.04.2013 / 19:23
1

O GNU ls -v já foi mencionado, mas para outros comandos, se o seu shell for zsh , você poderá afetar os curingas do pedido, que serão expandidos com qualificadores de globbing.

Por exemplo:

printf '%s\n' *(om)

Listaria os arquivos classificados por m tempo de odificação (do mais novo ao mais antigo), *(Om) para reverter a ordem de classificação (do mais antigo para o mais novo).

*(n) classificaria os arquivos numericamente. Então, se o seu ls não é o GNU ls , você ainda pode fazer:

ls -fdl -- *(n)

Para obter a lista numericamente ordenada.

    
por 12.04.2013 / 21:31

Tags