Shellscript 循环遍历所有文件并调整符号链接



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

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

事实上它应该是

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

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

有什么想法吗?

受到

Anishsane的回答的启发,我得到了这段有效的代码:

for name in $(find . -type l); do
    tgt=`readlink "$name"`
    ln -sf ../$tgt
done

尝试:

find $DIR_PATH -type l | while read x; do tgt=`readlink "$x"`; ln -sf ../$tgt $x; done

最新更新