![如何在 Windows 版 Bash 中打印文件树?](https://linux22.com/image/1346297/%E5%A6%82%E4%BD%95%E5%9C%A8%20Windows%20%E7%89%88%20Bash%20%E4%B8%AD%E6%89%93%E5%8D%B0%E6%96%87%E4%BB%B6%E6%A0%91%EF%BC%9F.png)
我发现这个命令可以显示当前目录下的目录树:
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
其结果为:
.
|-docs
|-lib
|-node_modules
|---connect-file-cache
|-----docs
|-----lib
|-----node_modules
|-------mime
|-------underscore
|-----src
|-----test
|-----test_fixtures
|---mime
|---snockets
很好,但是文件不存在。我的 Bash 脚本技能很差,所以我不知道如何让文件显示在输出中。
由于我使用的是 Windows,所以我认为我无法将tree
命令放入 mingw32。
答案1
https://superuser.com/a/359728/5200
将此函数添加到.bash_profile中:
function ftree {
SEDMAGIC='s;[^/]*/;|____;g;s;____|; |;g'
if [ "$#" -gt 0 ] ; then
dirlist="$@"
else
dirlist="."
fi
for x in $dirlist; do
find "$x" -print | sed -e "$SEDMAGIC"
done
}
它并不漂亮,但它能完成工作。归功于https://superuser.com/users/105575/ahmed-masud
答案2
可以帮助您解决此问题的工具是印刷大师。此便捷的解决方案将在预览后快速打印文件夹树。
当您单击左侧文件夹列表中的某个文件夹时,您将看到其所有子文件夹列在右上方列表中。在其下方,您将找到将要打印的报告模拟。模拟右侧有一个报告类型列表,您需要在“标准”选项卡中勾选“树”。