Как определить, что такое символическая ссылка, вместо адресата?

Есть ли способ, каким образом я могу просматривать / редактировать содержимое символьной ссылки? Я не хочу видеть место назначения, на которое указывает ссылка, но сама символическая ссылка.

Предположим, у меня есть файл file.txt и я создаю ссылку на file.txt как

  ln -s $HOME/path/to/file.txt . 

Теперь, если я скопирую эту ссылку в другую систему, эта ссылка ничего не укажет, если $HOME расширится до чего-то другого в другой системе, даже если путь после $HOME все тот же. Есть ли способ редактировать файл ссылки, чтобы $HOME не был расширен до создания файла, но является частью самого файла?

readlink покажет вам содержимое ссылки, но пункт назначения – все, что есть.

Вы не можете поместить переменные в символическую ссылку, но вы можете сделать пути относительными. Поэтому, если у вас есть:

 $HOME/path/to/file.txt $HOME/other/path/to/symlink.txt 

Вы можете создать символическую ссылку как ../../../path/to/file.txt , она укажет на file.txt независимо от того, что такое $HOME .

 ln -s ../../../path/to/file.txt $HOME/other/path/to/symlink.txt