Answers:
便携性:
find . -type d -exec sh -c 'printf "%s/\n" "$0"' {} \; -or -print
如果您愿意分别列出目录和文件(可以通过排序合并输出):
{ find . -type d -print | sed 's!$!/!'; find . \! -type d; } | sort
使用GNU查找,请参见Shawn J. Goff的答案。
如果即使在不输出到终端的情况下也愿意冒险对不可打印的字符进行处理,请参阅ddeimeke的答案。
在zsh中:print -rl -- **/*(DM)
(D
包括点文件,M
添加一个/
目录后)
find . \( -type d -printf "%p/\n" , -type f -print \)
这将使用printf命令来格式化目录名称和其余部分的标准打印。
-printf
是特定于GNU find的。
find
的位置参数如何使它执行这样的高级输出。但是,请注意,如果逗号之间没有空格,它将无法正常工作。
find . -type d -printf '%p/\n' -or -print
也许
find . -print0 | xargs -0 ls -Fd
是一个选择。
在Solaris手册页中:
-F用斜杠(/)标记目录,以大于号结尾的门(>)标记目录,以星号(*)结尾的可执行文件,以竖线(|)结尾的FIFO,在符号链接后加上“ ”(@)和带有尾随等号(=)的AF_UNIX地址族套接字。遵循名为操作数的符号链接。