Posso `ls` todos os arquivos em um diretório de "1", "2",...,"9", "10", "11", ..., "20", "21", ... ?

Posso `ls` todos os arquivos em um diretório de "1", "2",...,"9", "10", "11", ..., "20", "21", ... ?

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

Posso listá-los na ordem "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 um recurso como esse às vezes será útil.

Responder1

Com GNU ls(como encontrado na maioria das distribuições Linux), você pode usar ls -v, onde -v, na manpágina

 -v     natural sort of (version) numbers within text

Responder2

GNU ls -vjá foi mencionado, mas para outros comandos, se o seu shell for zsh, você pode afetar a ordem em que os curingas são expandidos com qualificadores globbing.

Por exemplo:

printf '%s\n' *(om)

Listaria os arquivos ordenados por mtempo de odificação (do mais novo para o mais antigo), *(Om)para inverter a ordem de classificação (do mais antigo para o mais novo).

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

ls -fdl -- *(n)

Para classificar a lista numericamente.

informação relacionada