Hi all, I have written this simple function to move or rename a destination file in an external link at point. I share it here in case it is useful to someone.
Best regards, Juan Manuel #+begin_src emacs-lisp (defun my-org-replace-link-file (from to) (save-excursion (goto-char (point-min)) (while (re-search-forward org-bracket-link-regexp nil t) (when (string-match-p from (match-string 1)) (replace-match (concat "[[file:" to "]]")))))) (defun my-org-rename-link-file-at-point () "Rename or move a file in an external link at point and update the link path" (interactive) (let* ((curr-dir (abbreviate-file-name default-directory)) (current-path (org-element-property :path (org-element-context))) (new-path (read-file-name "Rename file at point to: " current-path))) (rename-file current-path new-path) (message (concat "moved to: " new-path)) (if (directory-name-p new-path) (setq new-path (concat new-path (file-name-nondirectory current-path))) (setq new-path new-path)) (my-org-replace-link-file current-path (replace-regexp-in-string curr-dir "" new-path)))) #+end_src