4

在 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
4

2 回答 2

5

您可以ls -ldfind. 它会给你权限,其他东西,然后是文件名。如果然后通过管道传输到 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
于 2013-08-15T15:16:05.407 回答
2

在 OS X 上tree,您可以使用homebrew安装:

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
于 2013-08-15T15:14:03.417 回答