是否有可能獲得它所指向的鏈接的絕對路徑? 有沒有簡單的系統命令?獲取它指向的鏈接路徑?
我需要爲以下所有OS HP-UX 11i的,1123u,1123i AIX 5.2和5.3 的SUSE Linux 10級 的Solaris 10
是否有可能獲得它所指向的鏈接的絕對路徑? 有沒有簡單的系統命令?獲取它指向的鏈接路徑?
我需要爲以下所有OS HP-UX 11i的,1123u,1123i AIX 5.2和5.3 的SUSE Linux 10級 的Solaris 10
您沒有指定一種語言,所以我假設您需要一個可以在您使用的任何shell中運行的命令。 ls
命令有-l
(這是一個橢圓形)選項,它打印出大量關於該文件的信息。信息的最後一位是完整的路徑,所以你應該能夠說
ls -l file | awk '{print $NF}'
任何SUS2兼容的機器上
(這應該是所有的商業UNIX系統的)。如果文件或導向文件的任何目錄都有空格,則會出現問題。
如果你正在尋找一個系統調用,你想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)
。
它如何悲傷不平等。 – kadeshpa 2009-04-10 15:51:49