Tento entender como usar os qualificadores glob Zsh com arquivos ls
.
Um artigo na internet diz que para ordenar os arquivos do maior para o menor, posso usar o ls *(oL)
.
o<sort>
- Classifique os arquivos dependendo do valor de<sort>
O<sort>
- Gostoo
, mas classifique em ordem decrescenteO valor de
<sort>
pode ser:
n
- Classificar por nome (o padrão).L
- Ordenar por tamanho.l
- Classifique por número de links.a
- Classificar pelo último acesso.m
- Classifique pela última modificação.c
- Classifique pela última alteração de inode.d
- Os arquivos nos subdiretórios aparecem antes.N
- Não resolva nada.Por exemplo:
# Sort files from the smallest to the largest ls *(oL)
Mas ls *(oL)
não lista os arquivos dessa maneira para mim, ls *(On)
não lista os arquivos em ordem alfabética inversa, ls *(om)
não classifica os arquivos por data de modificação (e não há diferença se você executar ls *(Om)
). Todos os comandos listam os arquivos em ordem alfabética regular, de A a Z, e é isso. Parece que ls
ignora globs Zsh?
Devo dizer que em outras situações os globs Zsh parecem funcionar corretamente para mim. Por exemplo, print -rC1 *(.)
imprime apenas arquivos, sem diretórios.
zsh 5.9 (x86_64-apple-darwin23.0)
ls
faz sua própria classificação. Para desabilitar isso e exibir os arquivos conforme são fornecidos (pela expansão glob), use-f
no macOS:Para listar diretórios sem listar seu conteúdo, adicione
-d
. Para saída de coluna única, adicione-1
.