Estou procurando uma resposta para esta pergunta que não envolva o less
comando:
Existe uma maneira de executar o ls
comando no terminal e impedir a quebra de linha para nomes de arquivos longos?
Por exemplo, ao executar ls, em vez do seguinte:
shortfile
thisisalongfi
lename
shortfile
Eu gostaria que ele cortasse o nome do arquivo longo no ponto em que ele seria encapsulado, ou não o encapsularia, para que ele fosse exibido simplesmente como:
shortfile
thisisalongfi
shortfile
setterm
fará o possível para configurar seu terminal (emulador de terminal), mas em geral o terminal pode ou não suportar o recurso.O
ls
comando não tem uma opção para truncar nomes de arquivos, então você precisará de uma ferramenta extra.Você pode usar
cut
para truncar uma linha. Em um terminal, as variáveis de ambienteLINES
eCOLUMNS
contêm as dimensões do terminal.Isso suprime a coloração
ls
como comumente alias. Não há uma maneira fácil de combinar coloração com truncamento com base em ferramentas de texto; portanto, se você quiser colorir, é melhor dizer ao próprio terminal para truncar .O
fold(1)
comando padrão é um pouco ruim aqui, pois pode ser difícil diferenciar um nome de arquivo encapsulado de um que não está encapsulado:O GNU
sed
poderia funcionar, mas está um pouco infestado de backslashitis:awk
pode mostrar onde as linhas foram truncadas:Embora isso provavelmente deva estar oculto em um script que aceite o
w
argumento de largura ou use$COLUMNS
por padrão.Enquanto isso,
não é muito bom para a portabilidade.