我有大量的目录和文件,以及许多符号链接,这些符号链接通常指向名为“共享”的目录或“共享”目录下的目录或文件。
以下是一个表示:
$ ls -lR
total 0
drwxr-xr-x 5 myself staff 160 Oct 11 11:54 a
drwxr-xr-x 5 myself staff 160 Oct 11 11:55 b
./a:
total 0
lrwxr-xr-x 1 myself staff 2 Oct 11 11:54 a2 -> a1
lrwxr-xr-x 1 myself staff 2 Oct 11 11:54 a3 -> a2
lrwxr-xr-x 1 myself staff 2 Oct 11 11:54 a4 -> a3
./b:
total 0
lrwxr-xr-x 1 myself staff 2 Oct 11 11:54 b1 -> b2
lrwxr-xr-x 1 myself staff 2 Oct 11 11:54 b2 -> b3
lrwxr-xr-x 1 myself staff 2 Oct 11 11:55 b3 -> b4
如果我使用find -type l
列出符号链接,我会得到这个长输出:
$ find . -type l -ls
14800041 0 lrwxr-xr-x 1 myself staff 2 Oct 11 11:54 ./a/a4 -> a3
14800032 0 lrwxr-xr-x 1 myself staff 2 Oct 11 11:54 ./a/a3 -> a2
14799990 0 lrwxr-xr-x 1 myself staff 2 Oct 11 11:54 ./a/a2 -> a1
14800060 0 lrwxr-xr-x 1 myself staff 2 Oct 11 11:54 ./b/b2 -> b3
14800061 0 lrwxr-xr-x 1 myself staff 2 Oct 11 11:55 ./b/b3 -> b4
14800046 0 lrwxr-xr-x 1 myself staff 2 Oct 11 11:54 ./b/b1 -> b2
如果我使用进行递归列表ls -lR
,我会得到类似的输出。
我只需要输出中的两位 - 符号链接名称及其指向的内容,以 分隔->
。如何在不使用过滤器进行解析ls
或find
输出的情况下获取此输出?
你可以尝试
或者如果 -printf 不可用,您也可以尝试
使用 zsh shell: