Odpowiedzi:
Przenośny:
find . -type d -exec sh -c 'printf "%s/\n" "$0"' {} \; -or -print
Jeśli chcesz wyświetlić listę katalogów i plików osobno (możesz scalić dane wyjściowe przez sortowanie):
{ find . -type d -print | sed 's!$!/!'; find . \! -type d; } | sort
Z GNU find zobacz odpowiedź Shawna J. Goffa .
Jeśli zaryzykujesz zniekształceniem znaków niedrukowalnych, nawet jeśli nie są one wysyłane do terminala, zobacz odpowiedź ddeimeke .
W zsh: print -rl -- **/*(DM)
( D
aby dołączyć pliki kropek, M
aby dodać /
katalogi po)
find . \( -type d -printf "%p/\n" , -type f -print \)
Używa polecenia printf do formatowania nazw katalogów i drukowania standardowego dla reszty.
-printf
jest specyficzna dla GNU find.
find
argumenty pozycyjne pozwalają na tworzenie zaawansowanych wyników w ten sposób. Pamiętaj jednak, że bez spacji wokół przecinka nie będzie działać.
find . -type d -printf '%p/\n' -or -print
Może
find . -print0 | xargs -0 ls -Fd
jest również opcją.
Ze strony podręcznika Solaris:
-F Zaznacza katalogi ukośnikiem końcowym (/), drzwi znakiem końcowym większym niż (()), pliki wykonywalne z gwiazdką końcową (*), FIFO z kreską pionową końcową (|), dowiązania symboliczne z końcowym znakiem „ at ”znak (@) i gniazda rodziny adresów AF_UNIX ze znakiem równości ciągu (=). Podąża za dowiązaniami symbolicznymi nazwanymi jako operandy.