This patch try to support following way: #+begin_src sh :results link :file "/tmp/test.txt" echo "hello" > /tmp/test.txt echo "test" #+end_src #+RESULTS: [[file:/tmp/test.txt]] Because: - ~org-babel-execute-src-block~ - ~(org-babel-get-src-block-info)~ - (let* ((info .. (apply #'org-babel-merge-params ...)))) - ~org-babel-merge-params~ - [ ] *because* code ~(`(,(or :file :file-ext) . ,value) ...)~ lines logic in function ~org-babel-get-src-block-info~, it merge "file" ~:results~, so override params plist :results value ~link~. - [ ] So I put ~link~ and ~graphics~ "~:results~" type into a separate group in constant ~org-babel-common-header-args-w-values~. If anybody has better way, please improve my code.