Відповіді:
Портативно:
find . -type d -exec sh -c 'printf "%s/\n" "$0"' {} \; -or -print
Якщо ви готові перераховувати каталоги та файли окремо (ви можете об'єднати вихід шляхом сортування):
{ find . -type d -print | sed 's!$!/!'; find . \! -type d; } | sort
З GNU знайдіть відповідь Шона Дж. Гоффа .
Якщо ви готові ризикувати, щоб недруковані символи були замуровані, навіть не виходячи на термінал, див . Відповідь ddeimeke .
У zsh: print -rl -- **/*(DM)
( D
включити крапкові файли, M
додати /
каталоги після)
find . \( -type d -printf "%p/\n" , -type f -print \)
При цьому використовується команда printf для форматування імен каталогів та стандартного друку для решти.
-printf
характерно для знаходження GNU.
find
позиційні аргументи дозволяють йому робити такий просунутий результат. Однак зауважте, що без пробілів навколо коми це не вийде.
find . -type d -printf '%p/\n' -or -print
Можливо
find . -print0 | xargs -0 ls -Fd
це також варіант.
На сторінці чоловіка Solaris:
-F Позначення каталогів з кінцевою косою рисою (/), двері із заднім знаком, більшим, ніж знак (>), виконувані файли із заднім зірочкою (*), FIFO із заднім вертикальним штрихом (|), символічні посилання із заднім рядком " на знак "(@) та сімейні розетки AF_UNIX адреси зі знаком" трейлінг "(=). Слідкує за посиланнями, названими операндами.