0

我试图让libetpan在 iOS 上启动并运行,但是他们的设置 shell 脚本似乎有问题(问题在这里更详细地解释).. 但基本上我有一个文件夹,其中包含一长串指向无处的符号链接,即

mhdriver_types.h -> ../../src/driver/implementation/mh/mhdriver_types.h

事实上它应该是

mhdriver_types.h -> ../../../src/driver/implementation/mh/mhdriver_types.h 

我想编写一个循环遍历所有符号链接的shell脚本,删除每个符号链接,然后为它重新创建一个符号链接到同一个以前的目的地,只有一个子目录更深..基本上做我在示例中对所有文件所做的事情..

有任何想法吗?

4

2 回答 2

3

受 anishsane 的回答启发,我得到了这个有效的代码:

for name in $(find . -type l); do
    tgt=`readlink "$name"`
    ln -sf ../$tgt
done
于 2012-12-06T13:33:42.933 回答
1

尝试:

find $DIR_PATH -type l | while read x; do tgt=`readlink "$x"`; ln -sf ../$tgt $x; done
于 2012-12-06T12:48:57.407 回答