bar.txt
ディレクトリにファイルがあり、toをfoo
作成するとします。baz.txt
foo/bar.txt
./foo
./foo/bar.txt
./baz.txt -> foo/bar.txt
私のエディタを開くと、ディレクトリに開いているとbaz.txt
思います。 (文字通り)開くことができるようにリンクを作成する方法はありますか?baz.txt
.
bar.txt
コンテキスト(または私がこれをやろうとしている理由):.odt
同じディレクトリに残っているファイルにインデックスを付けてコメントを追加する多数のファイルを含むディレクトリがあります。この.odt
ファイルでは、ファイル名よりも(より多くの)コンテキストを使用して個々のファイルに簡単にアクセスできるように、ディレクトリ内のインデックス付きファイルへのハイパーリンクを作成しました。私はハイパーリンクを相対パスとして保存し、これらのリンクが私のユーザーファイルと常に同じディレクトリツリーを持たないすべてのコンピュータで動作するようにLibreOfficeを設定しました。
このファイルへのシンボリックリンク(またはそれに対応するリンク)を作成したいが、.odt
上記の例の場合、リンクが開かれると、baz.txt
LibreOfficeの観点から相対パスが間違っています。以前に作成されたハイパーリンクは機能せず、(もちろん比喩的に)ハイパーリンクを作成すると元に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ファイルのハンドラをからに変更すると、libreofficelibreoffice
はlowrapper
リンクの代わりにリンク先を開きます。