У меня дома есть две директории: ~/dir1
и ~/dir2
с файлом в первой: ~/dir1/file.txt
Можно ли как-нибудь сделать ссылку на него из ~/dir2
не переходя в ~/
и если нет, то почему это так?
Я пытался из ~/
работает:
$ ln -s ./dir1/file.txt ./dir2/file.txt
но, как и следовало ожидать, это приводит к тому, что результирующая символическая ссылка эффективно указывает на ~/dir1/dir2/file.txt
что имеет смысл, но не то, что я на самом деле хочу.
Я также попробовал:
$ ln -s ./dir1/file.txt ../dir2/file.txt
Который возвращает:
ln: failed to create symbolic link `../dir2/file.txt': No such file or directory
Я ожидал бы, что это просто создаст символическую ссылку ~/dir2/file.txt
указывающую на ~/../dir1/file.txt
Итак, я предполагаю, что мой настоящий вопрос заключается в следующем: могу ли я заставить ln
создать символическую ссылку на файл, который, по его мнению, не существует?
Изменить: Для большей ясности относительно того, что я пытаюсь достичь, я хочу одну команду, которую я могу запустить из моего домашнего каталога, которая будет эффективно выполнять:
pushd dir2/ && ln -s ../dir1/file.txt && popd
или в Python (это самое близкое к тому, что я хочу):
echo "import os; os.symlink('../dir1/file.txt', './dir2/file.txt')" | python