Não há uma opção incorporada em ls que faça o que você deseja. Você teria que analisar a saída e, em seguida, reiniciar se os nomes de arquivos "longos" forem encontrados ou fizer algo como:
$ ls ??????????* >& /dev/null && ls -l || ls
(Coloque quantos ? como seu limite de comprimento. Você pode configurá-lo como um alias.)
Por que você simplesmente não usa ls -1 ? (Isso é um, não um L. minúsculo) Sempre lista os arquivos em uma única coluna. (Ou canalize ls para more ou less , que também vai para exibição de coluna única.) Ou use find com -maxdepth 1 .