Я думаю, я знаю, о чем вы спрашиваете, но я не хочу делать предположения, которые окажутся ложными. Итак, вот они ---, пожалуйста, исправьте их соответствующим образом.
./node_modules/.bin/
является файлом Shebang. Нет необходимости проверять расширения файлов, не говоря уже об открытии каждого файла и проверке, начинается ли он с шебанга. Принимая во внимание это предположение, первым делом я попытаюсь решить вашу проблему с помощью цикла оболочки, подобного следующему:
for SCRIPT in./node_modules/.bin/* ; do
BN=$(basename "$SCRIPT")
ln -s "$SCRIPT" "$BN"
done
Надеюсь, это работает для вас, плюс-минус пара опечаток.
РЕДАКТИРОВАТЬ :Спасибо, что приняли мой ответ, но критика пользователя Stéphane Chazelas хорошо принята -. Хотя я успешно протестировал цикл в каталоге, полном скриптов (из пустого каталога ), он прав, заметив, что в других случаях он может дать сбой, и что цикл на самом деле не улучшается по сравнению с простымln -s./node_modules/.bin/*./
Как упоминалось в комментариях, работа с -v4
показала, что /lib
на самом деле является символической ссылкой на /usr/lib
. Это похоже, но, вероятно, не идентично https://github.com/aspiers/stow/issues/11.