¿Tienes GNU?
La versión gnu de lshas --group-directories-first. Y cptiene -t.
No GNU?
En los sistemas que no tienen GNU ls, su mejor opción es dos llamadas sucesivas findcon -maxdepth n/ -mindepth ny -type tcon las opciones apropiadas.
find . -maxdepth 1 -mindepth 1 -type d
find . -maxdepth 1 -mindepth 1 \! -type d
Para copiar archivos, con el objetivo primero, tendría que escribir un script que guarde el primer argumento, luego use shifty agregue el argumento hasta el final.
#!/bin/sh
target="$1"
shift
cp -r -- "$@" "$target"
¡Cuidado!
Si planeaba usarlos juntos, es decir, recopilar la lista de ( findo lsposiblemente mediante el uso xargs) y pasarla a cp(o un cpcontenedor), debe tener en cuenta los peligros que conlleva analizar las listas de archivos (básicamente, los nombres de archivo pueden contienen caracteres como líneas nuevas que pueden estropear su guión). Específicamente, mira en find's -execy -print0opciones y xargs' s -0opción.
Una herramienta alternativa para copiar eficientemente árboles de directorios.
Es posible que desee considerar el uso en su rsynclugar; Tiene muchas funciones que pueden facilitar su trabajo.
lsTiene un--group-directories-firstinterruptor.