GNU obtido?
A versão gnu do lshas --group-directories-first. E cptem -t.
No GNU?
Em sistemas que não têm gnu é ls, sua melhor aposta é duas chamadas sucessivas para findcom -maxdepth n/ -mindepth ne -type tcom as opções apropriadas.
find . -maxdepth 1 -mindepth 1 -type d
find . -maxdepth 1 -mindepth 1 \! -type d
Para copiar arquivos, com o destino primeiro, você teria que escrever um script que salve o primeiro argumento, depois use shifte inclua o argumento no final.
#!/bin/sh
target="$1"
shift
cp -r -- "$@" "$target"
Cuidado!
Se você estava planejando usá-los juntos - ou seja, coletando a lista de ( findou lspossivelmente usando xargs) e passando-a para cp(ou um cpwrapper), você deve estar ciente de quais perigos existem na análise de listas de arquivos (basicamente, os nomes de arquivos podem conter caracteres como novas linhas que podem atrapalhar seu script). Especificamente, olhar em find's -exece -print0opções e xargs' s -0opção.
Uma ferramenta alternativa para copiar com eficiência as árvores de diretórios.
Você pode querer usar o uso rsync; possui muitas funcionalidades que podem facilitar seu trabalho.
lstem um--group-directories-firstinterruptor.