Как сделать так, чтобы команда поиска показала косую черту после каталогов? Например, я хочу dir
показать как dir/
вместо dir
. я используюfind . -print
19
Портабельно:
find . -type d -exec sh -c 'printf "%s/\n" "$0"' {} \; -or -print
Если вы хотите перечислить каталоги и файлы отдельно (вы можете объединить вывод, отсортировав):
{ find . -type d -print | sed 's!$!/!'; find . \! -type d; } | sort
С помощью GNU find см . Ответ Шона Дж. Гоффа .
Если вы готовы рисковать тем, что непечатные символы будут искажены, даже если они не выводятся на терминал, см . Ответ ddeimeke .
В zsh: print -rl -- **/*(DM)
( D
включить точечные файлы, M
добавить /
после каталогов)
Это использует команду printf для форматирования имен каталогов и стандартной печати для остальных.
источник
-printf
это специфично для GNU find.find
позиционные аргументы позволяют делать расширенный вывод, как это. Однако обратите внимание, что без пробелов вокруг запятой это не сработает.find . -type d -printf '%p/\n' -or -print
Может быть
вариант также.
Из справочной страницы Solaris:
источник