(文字通り)ターゲットファイルを開くシンボリックリンクを作成する方法

(文字通り)ターゲットファイルを開くシンボリックリンクを作成する方法

bar.txtディレクトリにファイルがあり、toをfoo作成するとします。baz.txtfoo/bar.txt

./foo
./foo/bar.txt
./baz.txt -> foo/bar.txt

私のエディタを開くと、ディレクトリに開いているとbaz.txt思います。 (文字通り)開くことができるようにリンクを作成する方法はありますか?baz.txt.bar.txt

コンテキスト(または私がこれをやろうとしている理由):.odt同じディレクトリに残っているファイルにインデックスを付けてコメントを追加する多数のファイルを含むディレクトリがあります。この.odtファイルでは、ファイル名よりも(より多くの)コンテキストを使用して個々のファイルに簡単にアクセスできるように、ディレクトリ内のインデックス付きファイルへのハイパーリンクを作成しました。私はハイパーリンクを相対パスとして保存し、これらのリンクが私のユーザーファイルと常に同じディレクトリツリーを持たないすべてのコンピュータで動作するようにLibreOfficeを設定しました。

このファイルへのシンボリックリンク(またはそれに対応するリンク)を作成したいが、.odt上記の例の場合、リンクが開かれると、baz.txtLibreOfficeの観点から相対パスが間違っています。以前に作成されたハイパーリンクは機能せず、(もちろん比喩的に)ハイパーリンクを作成すると元にbaz.txtなりますbar.txt

ベストアンサー1

いいえ。しかし、シンボリックリンクの各パラメータを取得し、それを$(readlink -f $the_symlink)

ローラッパー:

#!/bin/bash -e
args=()
for a; do
    case $a in 
        -*) args+=("$a");;  #skip flags (your file names don't start with -, right?)
        *)  if ! [ -L "$a" ]; then #not a link
                args+=("$a")
            else #link => target
                args+=( "$( readlink -f "$a")" )
            fi
            ;;
    esac
done
libreoffice "${args[@]}"

chmod +x lowrapperこれをPATHのディレクトリに置き、libreofficeファイルのハンドラをからに変更すると、libreofficelibreofficelowrapperリンクの代わりにリンク先を開きます。

おすすめ記事