$ PATH относится к сетевой fs: обычно полезно, иногда ужасно

/ dev / {tcp, udp} - это только внутренние компоненты bash. Сокеты tcp и udp хранятся в / proc / net / {tcp, udp} ядром

3
19.02.2017, 09:24
1 ответ

Обходной путь, который может сработать для вас, - создать несколько сценариев оболочки в локальном каталоге и поместить их в путь поиска вместо удаленного каталога.Это не панацея: вам нужно обновлять оболочки каждый раз, когда изменяется содержимое удаленного каталога. Но в этом случае нет доступа к удаленному файлу, если вы не выполняете программу.

Вам нужна символическая ссылка, а не сценарий-оболочка, потому что завершение иногда проверяет, являются ли файлы исполняемыми, что означает вызов stat файлов. Но все обертки могут быть символическими ссылками на один исполняемый файл.

  • Раз и навсегда создайте локальный каталог ~ / remote-scripts и исполняемый файл ~ / remote-scripts / .remote-wrapper , содержащий

     #! / bin / sh 
    exec "/ remote / path / bin / $ {0 ## * /}" "$ @" 
     
  • Для обновления ~ / remote-scripts , запустите этот фрагмент:

     find ~ / remote-scripts -type l -exec rm {} + 
    для x в / remote / path / bin / *; сделать ln -s .remote-wrapper ~ / remote-scripts / "$ {x ## * /}"; done 
     
  • Поместите ~ / remote-scripts в свой ПУТЬ .

2
27.01.2020, 21:30

Теги

Похожие вопросы