質問

リンクが指しているリンクの絶対パスを取得することはできますか?簡単なシステムコマンドはありますか?

次のすべてのOS HP-ux 11i、1123u、1123i aix 5.2および5.3 Suse Linux 10 Solaris 10に必要です10 Solaris

役に立ちましたか?

解決

あなたは言語を指定していないので、私はあなたが使用しているものは何でもシェルで実行できるコマンドをしたいと仮定します。 ls のコマンドは、プリントアウト-l(すなわちエルある)オプションを有していますファイルに関する情報がたくさん。情報の最後のビットは、完全なパスであるので、あなたが言うことができるはずです。

ls -l file | awk '{print $NF}'

(商用のUNIXの全てでなければなりません)任意のSUS2準拠したマシン上で。ファイルまたはファイルに至るまでディレクトリのいずれかにかかわらず、スペースを持っている場合、これは問題になります。

他のヒント

システムコールをお探しの場合は、 readlink(2). 。これは標準化されているため、すべての POSIX 準拠システムで利用できるはずです。

前に示したリンクから抜粋した使用例を次に示します。

#include <unistd.h>

char buf[1024];
ssizet_t len;

if ((len = readlink("/modules/pass1", buf, sizeof(buf)-1)) != -1)
    buf[len] = '\0';

コマンドラインユーティリティを探している場合、標準化されたものはないようですが、 GNU (Linux) および BSD 両方持っています readlink(1).

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top