3

たとえば、別の場所に/home/user/Desktop/myfolder/link.desktopあるスクリプトを呼び出すデスクトップショートカットがあります。bash/tmp/myscript.sh

スクリプト内で、スクリプトを呼び出したショートカットのパスを見つけるにはどうすればよいですか? それはまったく可能ですか?

私が実際に達成したいのは、ショートカットリンクがあるサブフォルダーがあることです/home/user/Desktop/myfolder/subfolder。私のスクリプトでは、サブフォルダーにアクセスできるようにしたいと考えています。

試してみましたが、ショートカット アイコンがどこにあるかに関係なく、readlink -f常に返されます。/home/user

ショートカット リンクが生成され、別の場所に動的に配置されるため、作業パスを設定できません。

4

1 に答える 1

1

少なくとも、スクリプトで次のようなことができます。

find / -iname '*desktop' -exec fgrep -l $0 \{\} \; 2>/dev/null

それはあなたのファイルシステムを旅.desktopし、あなたのスクリプトのすべてのファイルを検索します...しかし、誰かが...にコメントを入れることができるので、これは誤解を招く可能性があることに注意しください。.desktop^Exec=/PATH/TO/$0egrepfgrep

または、ファイルをその場所にコピーするときにファイルを編集し、その.desktop新しい場所をパラメーターとしてExec行に追加するコピー機能を実行できます。

mycp() {
    sed "s/^Exec=.*/& $2/" $1 > $2 
}

または(そして私はそれで行きます)仕様に従って、あなたの行で%kparamを使用します。 Exec

于 2012-04-25T08:45:08.923 に答える