Coreutils (ou outro) 'ls': não anexar símbolo indicando tipo quando canalizado

0

Existe uma maneira de obter o GNU coreutils ls (ou qualquer outro código aberto ls ) para omitir o símbolo à direita ( * para executável, / para o diretório, etc.) somente quando a saída é canalizado?

o% GNUls tem uma opção --color[=WHEN] que aceita auto para mostrar automaticamente as cores quando a saída não é canalizada e omite as sequências de controle das cores quando a saída é canalizada. Estou procurando um comportamento idêntico em relação aos símbolos à direita indicando tipo de arquivo.

    
por Ivan G. 27.02.2018 / 20:35

1 resposta

1

Provavelmente você tem um alias para ls que está adicionando incondicionalmente a opção -F (ou --classify ). Gostaria de contornar isso, criando uma função de wrapper que testa se o stdout é um terminal ou não; adicione somente a opção -F se a saída for um terminal.

function ls {
  if [ -t 1 ]
  then
    command ls -F "$@"
  else
    command ls "$@"
  fi
}

Ajuste as outras opções padrão conforme desejar.

    
por 27.02.2018 / 21:11