При удалении s
вы удаляете первый s
в строке $HOSTLIST
. Скорее всего, это будет не тот s
, который вы хотите удалить (примечание localhot
в выходных данных ).
Лучше использовать массив и создать массив из подходящих хостов, может быть что-то вроде
hostlist=( localhost sdfsd sdfs s fsdf localhost sdfs fsdf sdf 127.0.0.1 )
for h in "${hostlist[@]}"; do
if timeout 3 bash -c "</dev/tcp/$h/22" 2>/dev/null; then
ok+=( "$h" )
fi
done
printf 'Ok host: %s\n' "${ok[@]}"
Вероятно, вы хотите поместить.dotfiles в репозиторий git, и вместо файлов вы получите символические ссылки внутри git.
Есть несколько способов справиться с этим:
Вероятно, вы захотите переместить фактические файлы в.dotfiles и создать символическую ссылку на те, что находятся в исходном месте. Должно работать в большинстве случаев, но вы можете столкнуться с проблемами, если в программном обеспечении, использующем эти файлы конфигурации (, реализованы какие-то странные проверки, но на самом деле этого не должно происходить ). Я бы попробовал этот.
Используйте жесткие ссылки вместо программных. ln ~/.dotfiles/nvim/init.vim ~/.config/nvim/init.vim
вместо ln -s
. Однако это может быть немного сложнее отслеживать и управлять. Обратите внимание, что жесткие ссылки не работают для каталогов.
Вы могли бы попробовать поиграться с привязкой монтирования, однако это работает только для каталогов и не так очевидно. Плюс требует системных изменений, чтобы этот параметр выдержал перезагрузку.
Решается само собой...
Я указал абсолютный путь из ~
. Нравится:
$ ln -s ~/.dotfiles/nvim/init.vim ~/.config/nvim/init.vim
Кажется, я создавал символическую ссылку с относительным путем до
Спасибо всем ответившим
Вместоln -s ~/.dotfiles/nvim/init.vim ~/.config/nvim/init.vim
вы также можете:
cd ~/.config/nvim
, а затем
ln -s../../.dotfiles/nvim/init.vim
(родственник)
или
ln -s ~/.dotfiles/nvim/init.vim
(расширено до абсолютного)
Таким образом, у вас больше контроля. Оба отн. и абс. должно сработать. Разница в том, когда вы копируете или перемещаете.