Shell

readlink -f 不能處理多個文件

  • January 27, 2015

我嘗試使用 執行readlink -f多個文件wildcard "*",但它將其他文件評估為操作數

命令

readlink -f *log

輸出(所需)

/home/trail_1.log
/home/trail_2.log

難道我做錯了什麼 ?我正在使用tcsh並且readlink是我知道讀取文件路徑的唯一命令。

您還可以使用realpath

% realpath *
/data/code/mdweb/Gemfile
/data/code/mdweb/Gemfile.lock
/data/code/mdweb/README.markdown

realpath不是POSIX。它在 FreeBSD 系統和一些(但不是全部)Linux 系統上預設可用(但 AFAIK 可以作為一個包安裝在大多數(如果不是全部)Linux 系統上)。

realpath的行為在不同的實現中可能會有所不同,因此上述行為不能保證有效。我已經在 FreeBSD 10 和 Arch Linux 上對其進行了測試。

readlink僅適用於一個文件,您需要一個循環來執行此操作:

for f in *; do
 readlink -f -- "$f"
done

引用自:https://unix.stackexchange.com/questions/178700