
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 man
página
-v natural sort of (version) numbers within text
Responder2
GNU ls -v
já 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ê ls
não for o GNU ls
, você ainda pode fazer:
ls -fdl -- *(n)
Para classificar a lista numericamente.