Linux命令以树的形式打印目录结构

Linux command to print directory structure in the form of a tree

是否有任何linux命令可以从Bash脚本调用,该脚本将以树的形式打印目录结构,例如,

1
2
3
4
5
folder1
   a.txt
   b.txt
folder2
   folder3


这是你在寻找树吗? 它应该在大多数发行版中(可能作为可选安装)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
~> tree -d /proc/self/
/proc/self/
|-- attr
|-- cwd -> /proc
|-- fd
|   `-- 3 -> /proc/15589/fd
|-- fdinfo
|-- net
|   |-- dev_snmp6
|   |-- netfilter
|   |-- rpc
|   |   |-- auth.rpcsec.context
|   |   |-- auth.rpcsec.init
|   |   |-- auth.unix.gid
|   |   |-- auth.unix.ip
|   |   |-- nfs4.idtoname
|   |   |-- nfs4.nametoid
|   |   |-- nfsd.export
|   |   `-- nfsd.fh
|   `-- stat
|-- root -> /
`-- task
    `-- 15589
        |-- attr
        |-- cwd -> /proc
        |-- fd
        | `-- 3 -> /proc/15589/task/15589/fd
        |-- fdinfo
        `-- root -> /

27 directories

样本来自维护者的网页。

您可以添加选项-L #,其中#由数字替换,以指定最大递归深度。

删除-d以显示文件。


你可以用这个:

1
ls -R | grep":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/   /' -e 's/-/|/'

它将在几秒钟内显示没有文件的当前子目录的图形表示,例如 在 / var / cache / 中:

1
2
3
4
5
6
7
8
9
10
11
12
   .
   |-apache2
   |---mod_cache_disk
   |-apparmor
   |-apt
   |---archives
   |-----partial
   |-apt-xapian-index
   |---index.1
   |-dbconfig-common
   |---backups
   |-debconf

资源


要将Hassou的解决方案添加到.bashrc,请尝试:

1
alias lst='ls -R | grep":$" | sed -e '"'"'s/:$//'"'"' -e '"'"'s/[^-][^\/]*\//--/g'"'"' -e '"'"'s/^/   /'"'"' -e '"'"'s/-/|/'"'"