Поведение:
me@local: tree
.
|-- ba
| `-- file.txt
|-- foo
| `-- file.txt -> ba/file.txt
`-- foobar
теперь, допустим, я переместил file.txt из ba
в foobar
:
me@local: mv ba/file.txt foobar/file.txt
Я заметил, что символическая ссылка в папке foo еще указать путь ba/file.txt
.
Есть способ создать символические ссылки, которые автоматически обновляют пути при перемещении исходного файла?
Или символические ссылки, которые удаляются при удалении исходного файла?
Будет здорово .
Вы можете создавать жесткие ссылки.
Жесткие ссылки имеют свои недостатки, например, нет ссылок на каталоги, нет ссылок на файловые системы. И они не удаляются при удалении «оригинала»; на самом деле они не позволяют освободить место на диске, и вы все равно можете получить доступ к содержимому по жесткой ссылке.
Вы не можете создавать жесткие ссылки в файловом браузере (Nautilus), но есть сообщение об ошибке об этом.
Да, вы можете.
В командной строке вы должны ввести:
ln ba/file.txt foo/file.txt
это сильная ссылка, и если вы даже удалите файл в ba / file.txt, он останется в foo / file.txt (вы Вы можете увидеть, сколько существует ссылок с помощью команды ls -l
. Если вы хотите сделать то, что вы сделали (создать символическую ссылку), вы должны набрать:
ln -s ba/file.txt foo/file.txt
Насколько я знаю, нет никакого способа сделать это с обычными файловыми системами Linux.
Симлинки - это просто тупой текст, который гласит: «Смотри, меня действительно зовут Foo» - как вы уже выяснили, проверки Foo не существует. Вы можете создавать символические ссылки, которые ни на что не указывают, с той же легкостью, с которой вы можете создавать символические ссылки, указывающие на что-то полезное.
Может быть, кто-то с большим знанием файловых систем, отличных от ext2 / 3/4 (например, jfs? Или zfs? Или zfs?), Сможет сказать, возможно ли это в более продвинутых файловых системах, чем ext2 / 3/4. , Может быть, NTFS может поддержать это даже? NTFS не имеет символических ссылок как таковых, но есть некоторые другие немного похожие вещи (имя которых ускользает от меня прямо сейчас).