Macos 具有权限的文件夹树

Macos 具有权限的文件夹树,macos,bash,terminal,treeview,sunos,Macos,Bash,Terminal,Treeview,Sunos,在OSX和SunOS操作系统中不存在“bash-tree命令” 要绘制文件夹的树“图”,我使用以下说明: find . -type d -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g' 也可以使用此选项来显示文件 find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g' 但我需要另一个版本,其中也包含文件夹的权利。我很难在右边添加文件夹权限。有人知道吗 更新: 可以选择打印文件夹中的文件及其权限

在OSX和SunOS操作系统中不存在“bash-tree命令”

要绘制文件夹的树“图”,我使用以下说明:

find . -type d -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'
也可以使用此选项来显示文件

find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'
但我需要另一个版本,其中也包含文件夹的权利。我很难在右边添加文件夹权限。有人知道吗

更新: 可以选择打印文件夹中的文件及其权限。我正在尝试使用此命令
find-打印| sed-e's;[^/]*/;|____;Gs、 | | | |;g'
并与#fedorqui提供的解决方案进行组合,但效果不太好

这是使用上述命令获得的结果,没有权限

| | |____src
| | | |____cft2exit.c
| | | |____cft2exit_AIX
| | | |____cft2exit_SUN
| | | |____gestidt.c
| | | |____gestidt.h
| | | |____gestidt.o
| | | |____gestidt_AIX
| | | |____gestidt_SUN
| | | |____gestidt_SunOS
| | | |____makefile
| | | |____sem.a
| | | |____ut_sem.c
| | | |____ut_sem.h
| | | |____ut_sem.o
| |____data
| | |____purge.dat
| |____lost+found

在OS X上,您可以使用以下方法安装

或者,使用:

然后,要查看具有权限的目录,请执行以下操作:

$ tree -p -d
样本输出:

.
├── [drwxr-xr-x]  folder1
│   └── [drwxr-xr-x]  folder2
│       └── [drwxr-xr-x]  folder3
│           └── [drwxr-xr-x]  folder4
└── [drwxr-xr-x]  folder5
    ├── [drwxr-xr-x]  folder6
    └── [drwxr-xr-x]  folder7

您可以对
find
的每个结果执行
ls-ld
。它将为您提供权限、其他内容,然后是文件名。如果然后通过管道连接到awk,则使用
awk'{print$NF,$1}'
可以打印这两个信息块。最后,通过管道发送到
sed
命令。总而言之:

find . -type d -exec ls -ld {} \; | awk '{print $NF, $1}' | sed -e 's;[^/]*/;|____;g;s;____|; |;g'
试验 小步骤:

$ find . -type d -exec ls -ld {} \;
drwxrwxr-x 7 me me 4096 Aug 15 15:35 .
drwxrwxr-x 3 me me 4096 Aug 13 14:31 ./python
drwxrwxr-x 4 me me 4096 Apr 26 15:14 ./python/jinja2
drwxrwxr-x 2 me me 4096 Apr 19 14:26 ./python/jinja2/bk
drwxrwxr-x 2 me me 4096 Apr 19 12:54 ./python/jinja2/infiles
然后

$ find . -type d -exec ls -ld {} \; | awk '{print $NF, $1}' 
. drwxrwxr-x
./python drwxrwxr-x
./python/jinja2 drwxrwxr-x
./python/jinja2/bk drwxrwxr-x
./python/jinja2/infiles drwxrwxr-x

祝贺你,这是一个非常巧妙的好方法。你的意思是有类似于
\uuuuuu dir1 drwxrwxr-x
的东西吗?是的,正是你写的。没有找到一个'-ls'选项???@Dru,我不知道。有没有任何选项可以显示文件夹以及文件夹中的文件,所有这些都有它们的权限。我正在尝试将您的解决方案与另一个命令find相结合-打印| sed-e's;[^/]*/;|____;Gs、 | | | |;但是结果不太好。@jorgevagasánchez嗯,我不确定我是否理解你的意思。你能用一个输入/输出示例更新你的问题吗?@jorgevagasánchez使用
ls-ld
很重要,因为
-d
提供了有关目录的信息。否则,使用
ls-l
可以打印每个特定目录的内容。
$ find . -type d -exec ls -ld {} \; | awk '{print $NF, $1}' | sed -e 's;[^/]*/;|____;g;s;____|; |;g'
. drwxrwxr-x
|____python drwxrwxr-x
| |____jinja2 drwxrwxr-x
| | |____bk drwxrwxr-x
| | |____infiles drwxrwxr-x
.......
$ find . -type d -exec ls -ld {} \;
drwxrwxr-x 7 me me 4096 Aug 15 15:35 .
drwxrwxr-x 3 me me 4096 Aug 13 14:31 ./python
drwxrwxr-x 4 me me 4096 Apr 26 15:14 ./python/jinja2
drwxrwxr-x 2 me me 4096 Apr 19 14:26 ./python/jinja2/bk
drwxrwxr-x 2 me me 4096 Apr 19 12:54 ./python/jinja2/infiles
$ find . -type d -exec ls -ld {} \; | awk '{print $NF, $1}' 
. drwxrwxr-x
./python drwxrwxr-x
./python/jinja2 drwxrwxr-x
./python/jinja2/bk drwxrwxr-x
./python/jinja2/infiles drwxrwxr-x