在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