Unix: O que acontece se eu inserir ls -d [2-q] *

0

Será que ele simplesmente ignoraria o bit após a opção -d, já que você não pode organizar os caracteres lexicamente entre 2 e q?

    
por user86062 29.09.2014 / 21:13

1 resposta

3

Sim, os caracteres podem ser organizados lexicamente entre 2 e q. Faça um ls /bin e você verá os valores numéricos antes das letras. Na verdade, você pode fazer ls /bin/[2-q]* e ver exatamente o que acontece.

A ordenação léxica na localidade "C" é pelo valor ASCII, então '2' tem 32 casas decimais e 'q' é 71. Faça um man ascii para ver toda a tabela ASCII.

Talvez você quisesse perguntar o que acontece se você faz especificar um intervalo lexográfico ilegal? Você poderia tentar:

% ls /bin/[q-2]*
ls: cannot access /bin/[q-2]*: No such file or directory

Naturalmente, seu shell está expandindo esse padrão (também conhecido como "expansão GLOB de nome de arquivo"), portanto, o erro exibido pode depender das opções do shell e do shell. No meu caso, eu uso zsh e defini as opções zsh para passar por padrões que não podem ser expandidos diretamente para o comando que está sendo chamado, em vez de gerar um erro de shell que abortaria a execução do comando.

    
por 29.09.2014 / 21:36