将 node_modules/.bin 中的所有 shebang 符号链接到当前文件夹

将 node_modules/.bin 中的所有 shebang 符号链接到当前文件夹

我正在尝试对./node_modules/.bin/文件夹中的所有 shebang 脚本进行符号链接,并且我已经尝试过以下操作:

ln -s ./node_modules/.bin/* ./ && ls -l ./

但它似乎不起作用。

答案1

思考我知道你在问什么,但我不想做出最终被证明是错误的假设。所以它们在这里——请酌情更正它们。

  • 我假设其中的每个文件./node_modules/.bin/都是 Shebang 文件。不需要检查文件扩展名,更不用说打开每个文件并检查它是否以 shebang 开头。

考虑到这个假设,我对你的问题的第一个尝试将是像下面这样的 shell 循环:

for SCRIPT in ./node_modules/.bin/* ; do
    BN=$(basename "$SCRIPT")
    ln -s "$SCRIPT" "$BN"
done

希望这对您有用,请注意一两个拼写错误。

编辑:感谢您接受我的回答,但用户 Stéphane Chazelas 的批评很受欢迎。虽然我成功地在充满脚本的目录(来自空目录)上测试了循环,但他正确地指出,它在其他情况下可能会失败,并且循环实际上并没有在简单的情况下得到改进ln -s ./node_modules/.bin/* ./

相关内容