如何在 Windows 版 Bash 中打印文件树?

如何在 Windows 版 Bash 中打印文件树?

我发现这个命令可以显示当前目录下的目录树:

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

可以帮助您解决此问题的工具是印刷大师。此便捷的解决方案将在预览后快速打印文件夹树。

当您单击左侧文件夹列表中的某个文件夹时,您将看到其所有子文件夹列在右上方列表中。在其下方,您将找到将要打印的报告模拟。模拟右侧有一个报告类型列表,您需要在“标准”选项卡中勾选“树”。

打印文件夹树

相关内容