答案1
问题发生在脚本的这一部分:
for s in $( ls tmp/usr/bin ); do
p=$( readlink tmp/usr/bin/${s} )
d=$( dirname ${p} )
ln -s larch0/$( basename ${d} )/$( basename ${p}) ${s}
done
rm -rf tmp
我尝试单独运行它们并出现错误,所以在我看来,符号链接是错误的方法,因为“tmp”在下面被禁止了。
此外,当我尝试这样做时,readlink 不会回显任何内容。可能是因为它没有打印回值,然后杀死了dirname
下面的所有内容。也许可以将其替换为(不过,这很肮脏,因为我不知道接下来的东西在哪里):
mkdir -p larch0/tmp/usr/bin
mkdir -p larch0/usr/bin
cp tmp/usr/bin/* larch0/tmp/usr/bin/
cp tmp/usr/bin/* larch0/usr/bin
这只是将相同的文件复制到这两个位置,因为我不知道下一个脚本真正想要什么。我敢打赌这只是larch0/usr/bin
合乎逻辑的,但无论如何。