java获取linux的目录结构树,Linux命令以树形式打印目录结构

这篇博客探讨了如何在Bash脚本中调用Linux命令来以树形结构展示目录。提供了多种实现方式,包括使用ls、grep和sed的组合,以及使用tree命令(如果可用)。还讨论了如何通过alias定制命令输出,使其更接近于tree命令的图形化表示,并给出了限制递归级别的方法。此外,提到了在某些环境下tree命令可能不可用,因此这些替代方案非常实用。
摘要由CSDN通过智能技术生成

我可以从Bash脚本中调用任何Linux命令吗,它将以树的形式打印目录结构,例如,

folder1

a.txt

b.txt

folder2

folder3

#1楼

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

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

#2楼

您可以使用以下一种:

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

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

.

|-apache2

|---mod_cache_disk

|-apparmor

|-apt

|---archives

|-----partial

|-apt-xapian-index

|---index.1

|-dbconfig-common

|---backups

|-debconf

#3楼

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

~> 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也显示文件。

#4楼

是否可以使用递归但将其限制为3个级别?

#5楼

我正在用@Hassou的答案美化输出:

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

这很像现在tree的输出:

.

├─pkcs11

├─pki

├───ca-trust

├─────extracted

├───────java

├───────openssl

├───────pem

├─────source

├───────anchors

├─profile.d

└─ssh

您也可以为其别名:

alias ltree=$'ls -R | grep ":$" | sed -e \'s/:$//\' -e \'s/[^-][^\/]*\//──/g\' -e \'s/─/├/\' -e \'$s/├/└/\''

顺便说一句, tree在某些环境(例如MinGW)中不可用。 因此,替代方案是有帮助的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值