将参数传递到类似树命令的打印目录中

问题描述 投票:0回答:1

跟随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/-/|/'

或者,来自“ myhome”: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)

遵循Linux命令的回答,以树的形式打印目录结构:ls -R | grep“:$” | sed -e's /:$ //'-e's / [^-] [^ \ /] * \ //-/ g'-e's / ^ / /'-e's /-/ | /'列出一个...

bash function parameter-passing alias zsh
1个回答
-1
投票

我有两个版本:

© www.soinside.com 2019 - 2024. All rights reserved.