存在しないファイルに対する「readlink -e」に対するLinuxの代替

存在しないファイルに対する「readlink -e」に対するLinuxの代替

Windowsでは、ファイルの保存ダイアログボックスに表示できるように、存在しないファイルへのフルパスを作成して、ホストアプリケーションにファイルを保存する場所を伝えることがよくあります。 Cygwinを使用すると、次のことができます。

cygpath -au Some/Relative/Path.blah # For Cygwin apps
cygpath -aw Some/Relative/Path.blah # For Windows apps

putclip関連アプリケーションのファイル保存ダイアログに貼り付けられるように、生成されたフルパスをCygwinにパイプすることがよくあります。より正確には、putclp終了キャリッジリターンを削除する私の関数(「i」を除く)にパイプします。

私がLinuxで見つけたものに最も近いのは次のとおりです。

readlink -e Some/Relative/Path.blah

xsel -ipX-windowsメインクリップボードやxsel -ibUbuntuのより現代的なWindowsに似たクリップボードにパイプします。

残念ながら、readlink -eパスは1つだけ返されます。既存の文書。アプリケーションにファイルを作成する場所を指定するため、存在しないファイルへのフルパスを生成する必要があることがよくあります。

cygpathreadlink/存在しないファイルに対して指定された相対パスに基づいてフルパスを生成する対応がありますか?

必要なコマンドが呼び出されると仮定すると、GetFullPath必要な機能の例は次のとおりです。

GetFullPath Relative/Path/To/Nonexistent/File

標準出力の結果はです/The/Full/Path/To/Nonexistent/File

答え1

realpath -m Some/Relative/Path.blah

それで十分です。 Linuxではシンボリックリンクをチェックする必要はなく、リンクを含むパスとそうでないパスとの間に実際に使用法の違いはありません。後者でできることは前者にも当てはまります。保存ダイアログを気にしないでください!

やや奇妙な理由で、保存ダイアログにシンボリックリンクがないことに本当に興味がある場合でも、同じ-mオプションが適用されます。readlink -e Some/Relative/Path.blah

関連情報