Macos 具有权限的文件夹树
在OSX和SunOS操作系统中不存在“bash-tree命令” 要绘制文件夹的树“图”,我使用以下说明: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' 但我需要另一个版本,其中也包含文件夹的权利。我很难在右边添加文件夹权限。有人知道吗 更新: 可以选择打印文件夹中的文件及其权限
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