我尝试readlink -f
使用 来运行多个文件wildcard "*"
,但它将其他文件评估为操作数
命令
readlink -f *log
输出(所需)
/home/trail_1.log
/home/trail_2.log
难道我做错了什么 ?我正在使用tcsh
并且readlink
是我知道的唯一命令来读取文件路径。
答案1
您还可以使用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 上测试过它。
答案2
readlink
仅适用于一个文件,您需要一个循环来执行此操作:
for f in *; do
readlink -f -- "$f"
done