默认情况下,tree显示如下:
$ tree\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Package.resolved\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Package.swift\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Sources\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 SwiftClientSDK\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 OpenAPI.yaml\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 SwiftClientSDK.swift\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 openapi-generator-config.yaml\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 Tests\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 SwiftClientSDKTests\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 SwiftClientSDKTests.swift\nRun Code Online (Sandbox Code Playgroud)\n我想让它显示 cwd 的内容,如下所示:
\nPackage.resolved\nPackage.swift\nSources\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 SwiftClientSDK\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 OpenAPI.yaml\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 SwiftClientSDK.swift\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 openapi-generator-config.yaml\nTests\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 SwiftClientSDKTests\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 SwiftClientSDKTests.swift\nRun Code Online (Sandbox Code Playgroud)\n我在手册页中看到的任何内容都表明这是可能的。
\nSté*_*las 11
看起来不像
tree -- *
Run Code Online (Sandbox Code Playgroud)
很接近,但它抱怨那些不是目录类型的文件并遵循目录的符号链接。
您始终可以对输出进行后处理以删除额外的缩进:
tree -C | sed '1d;$!s/....//'
Run Code Online (Sandbox Code Playgroud)
这里d删除1st行,并删除除 ( ) 最后 ( ) 行s之外的所有行上的前四个字符(将前四个字符替换为空) 。选项是保留颜色,因为它的输出不会发送到终端。!$-Ctree
您可以为其创建一个函数:
ltree() (
set -o pipefail
if [ -t 1 ]; then
set -- -C "$@"
fi
tree "$@" | sed '1d;$!s/....//'
)
Run Code Online (Sandbox Code Playgroud)
请注意,如果传递多个目录(如ltree dir1 dir2),它将无法正常工作。在这种情况下,您可能需要正常的tree输出。