2

Недавно я изменил свое имя пользователя в osx, следуя документации Apple. У меня есть каталоги sh и bin в домашнем каталоге.

Обычно я пишу sh/foo.sh и связываю его с bin/foo чтобы использовать его.

После смены имени пользователя все символические ссылки указывают путь, включающий старое имя пользователя. Есть ли способ заменить все имя пользователя в символических ссылках сразу?

Старое имя пользователя достаточно длинное и уникальное, что не соответствует другим строкам в пути.

1 ответ1

0

Не могли бы вы просто восстановить символические ссылки?

cd ~/bin; for f in ../sh/*.sh; do ln -sf $f $(basename $f .sh); done

Другие опции:

  • cd ~/bin; find . -lname '/Users/oldname/sh/*' -exec ln -sf ../sh/{}.sh {} \;
  • cd ~/bin; for f in *; do target=$(readlink $f); [[ $target = /Users/oldname/* ]] && ln -sf ${target/oldname/newname} .; done

ln не перезаписывает существующие файлы без -f . find -lname соответствует целям символических ссылок.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .