Ответ
Да, изменяется содержимое оригинального файла, но не сама символьная ссылка.
Символьная ссылка (symlink, soft link) — это отдельный файл особого типа, который содержит только текстовый путь к целевому файлу или каталогу. При операциях чтения или записи через ссылку ядро автоматически перенаправляет их на цель.
Практический пример:
# 1. Создаем оригинальный файл и символьную ссылку на него
echo "Первоначальное содержимое" > original_file.txt
ln -s original_file.txt my_symlink
# 2. Проверяем, что ссылка указывает на файл
ls -l my_symlink
# lrwxrwxrwx 1 user user 17 Apr 10 12:00 my_symlink -> original_file.txt
# 3. Редактируем ЦЕЛЕВОЙ файл, записывая данные ЧЕРЕЗ ссылку
echo "Новые данные, записанные через symlink" > my_symlink
# 4. Проверяем результат
cat original_file.txt
# Вывод: Новые данные, записанные через symlink
cat my_symlink
# Вывод: Новые данные, записанные через symlink
# 5. Сама ссылка как файл не изменилась — она по-прежнему содержит только путь.
# Мы можем это увидеть, прочитав её содержимое как обычный текстовый файл:
cat my_symlink # Ядро перенаправит чтение на цель
readlink my_symlink # Эта команда покажет истинное содержимое ссылки — путь.
# Вывод: original_file.txt
Ключевые выводы:
- Изменение через
symlink= изменение целевого файла. - Удаление
symlink(rm my_symlink) не затрагивает оригинальный файл. - Удаление или перемещение оригинального файла приводит к "битой" ссылке (dangling symlink), которая будет указывать на несуществующий путь.