【发布时间】:2020-02-19 07:42:30
【问题描述】:
关注Linux command to print directory structure in the form of a tree的回答
我有:
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
列出树目录。
我希望它表现得像普通命令并接受参数,而不是仅仅创建一个别名。
我有这个目录结构:
|-myhome
|---top
|-----test
|-------folder1
|-------folder2
|-------folder3
如果我想要这个(来自“顶部”):
|-test
|---folder1
|---folder2
|---folder3
我必须cd top 然后ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
或者,来自“我的家”:ls -R top | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
我想要一些类似的东西:
lstree <dir>
在这种情况下(从“顶部”开始):
lstree test
我不是从 别名中得到的
我正在研究 bash 函数:
function ls4less(){ ls -R $1 | less}
然后我可以从“顶部”调用
ls4less
屈服
test
./test:
folder1
folder2
folder3
./test/folder1:
file11.txt
file12.txt
./test/folder2:
file21.txt
file22.txt
./test/folder3:
file31.txt
file32.txt
file33.txt
(END)
或
ls4less test
屈服
folder1
folder2
folder3
test/folder1:
file11.txt
file12.txt
test/folder2:
file21.txt
file22.txt
test/folder3:
file31.txt
file32.txt
file33.txt
(END)
【问题讨论】:
-
当您明确要求 bash 解决方案时,为什么还要将其标记为 zsh?
标签: bash function parameter-passing alias zsh