Respuestas:
Portablemente:
find . -type d -exec sh -c 'printf "%s/\n" "$0"' {} \; -or -print
Si está dispuesto a enumerar directorios y archivos por separado (puede fusionar la salida ordenando):
{ find . -type d -print | sed 's!$!/!'; find . \! -type d; } | sort
Con GNU find, vea la respuesta de Shawn J. Goff .
Si está dispuesto a arriesgarse a que los caracteres no imprimibles sean destrozados incluso cuando no se envían a un terminal, consulte la respuesta de ddeimeke .
En zsh: print -rl -- **/*(DM)
( D
para incluir archivos de puntos, M
para agregar un /
directorio posterior)
find . \( -type d -printf "%p/\n" , -type f -print \)
Esto utiliza el comando printf para formatear nombres de directorio e impresión estándar para el resto.
-printf
es específico de GNU find.
find
los argumentos posicionales le permiten obtener resultados avanzados como este. Sin embargo, tenga en cuenta que sin los espacios alrededor de la coma, no funcionará.
find . -type d -printf '%p/\n' -or -print
Tal vez
find . -print0 | xargs -0 ls -Fd
Es una opción también.
Desde una página de manual de Solaris:
-F Marca directorios con una barra inclinada final (/), puertas con un signo posterior mayor que (>), archivos ejecutables con un asterisco final (*), FIFOs con una barra vertical final (|), enlaces simbólicos con un final " en "sign (@), y AF_UNIX se dirigen a los sockets de familias con un signo trail igual a igual (=). Sigue enlaces simbólicos nombrados como operandos.