Передача параметров в каталог печати как команда дерева - PullRequest
0 голосов
/ 23 октября 2019

После ответа от команды Linux для печати структуры каталогов в виде дерева

Я получил:

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}

, которые затем я могу вызвать из "top"

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)

1 Ответ

0 голосов
/ 23 октября 2019

У меня есть две версии:

function lstree_1(){ls -R "$1" | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/   /' -e 's/-/|/'}
function lstree_2(){echo "$1" | ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/   /' -e 's/-/|/'}

Наслаждайтесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...