Вам необходимо указать абсолютный путь в источнике: в вашем случае это будет:
ln -s $PWD/* ../destination/
В отличие от жесткой ссылки, где созданная запись каталога напрямую ссылается на тот же исходный файл, символическая ссылка содержит текст исходной ссылки на файл. Действительно, исходный файл не должен существовать при создании символической ссылки, хотя, очевидно, ваше использование *
гарантирует, что используются только существующие исходные файлы.
На самом деле все немного сложнее: если вы указываете абсолютный путь в ссылке, то ссылка на ссылку действует так, как если бы вы указали исходный файл; но если вы укажете относительный путь, он будет добавлен в каталог, где находится ссылка. Таким образом, альтернатива, которую вы можете использовать из target
каталога:
cd ../destination/; ln -s ../target/* .
Это будет иметь тот же эффект, что и абсолютный путь, но имеет одно отличие: если все дерево каталогов было скопировано или перемещено в другое место (например, где-то в другом каталоге пользователя), ссылки будут ссылаться на файлы в их новом местоположении. Поэтому выбор абсолютных или относительных ссылок будет зависеть от того, захотите ли вы когда-нибудь скопировать или переместить исходные файлы вместе со ссылками: если исходные файлы всегда будут оставаться в одном месте, используйте абсолютные ссылки.