具有权限的文件夹树



在OS X和SunOS OS中,不存在"bash树命令"。

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

find . -type d -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'

或者这也是为了显示文件。

find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'

但我需要另一个版本,其中也包含文件夹的权利。在右边添加文件夹权限,我很失落。有人知道吗??

更新:有任何选项可以绘制文件夹中的文件及其权限。我正在尝试使用这个命令find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;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

您可以对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 {} ; | 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

在OS X上,您可以使用自制软件安装tree

brew install tree

或者,使用macports:

sudo port install tree

然后,查看具有权限的目录:

$ 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

相关内容

  • 没有找到相关文章