Jawaban:
Portabel:
find . -type d -exec sh -c 'printf "%s/\n" "$0"' {} \; -or -print
Jika Anda ingin membuat daftar direktori dan file secara terpisah (Anda dapat menggabungkan output dengan menyortir):
{ find . -type d -print | sed 's!$!/!'; find . \! -type d; } | sort
Dengan GNU find, lihat jawaban Shawn J. Goff .
Jika Anda ingin mengambil risiko karakter yang tidak dapat dicetak rusak bahkan ketika tidak menghasilkan ke terminal, lihat jawaban ddeimeke .
Di zsh: print -rl -- **/*(DM)
( D
untuk memasukkan file dot, M
untuk menambah /
direktori after)
find . \( -type d -printf "%p/\n" , -type f -print \)
Ini menggunakan perintah printf untuk memformat nama direktori dan cetak standar untuk yang lain.
-printf
khusus untuk menemukan GNU.
find
argumen posisi memungkinkannya melakukan output lanjutan seperti ini. Namun, perhatikan bahwa tanpa spasi di sekitar koma, itu tidak akan berfungsi.
find . -type d -printf '%p/\n' -or -print
Mungkin
find . -print0 | xargs -0 ls -Fd
juga merupakan pilihan.
Dari halaman manual Solaris:
-F Menandai direktori dengan garis miring (/), pintu dengan tanda lebih besar dari tanda (>), file yang dapat dieksekusi dengan tanda bintang (*), FIFO dengan bilah garis vertikal (|), tautan simbolis dengan tanda " at "sign (@), dan AF_UNIX soket keluarga alamat dengan tanda trailingequals (=). Mengikuti symlink yang disebut operan.