我希望我的脚本在处理文件时解释链接

我希望我的脚本在处理文件时解释链接
> ls -l aliasedname
lrwxr-xr-x  1 anon3202  users  19 Dec 25 05:24 aliasedname -> www/realfilename

我希望我的脚本返回有关~/www/realfilename何时提供有关aliasedname($1) 的信息的详细信息,而不是有关指定链接的信息aliasedname(如上所示)。

我想(也许?)我想要某种类型的exec?但我对此真的很模糊。

我正在考虑做一个ls, acut并评估它,然后抓住最后一部分用作路径......但看起来这是很多工作,并且应该有一个更简单(更优雅)的解决方案。


我用我的脚本对 $1 做了各种各样的事情,但是任何事情都可以传递给我的脚本进行处理。我想确保我处理的是实际的文件,而不是别名。

我可以检查它是否是一个文件 ( if [ -f $1 ]; then),但如果我传递了一个别名,那么意图是什么就很清楚了,我不应该只是失败。

答案1

如果您需要ls详细信息,请使用-H (--dereference-command-line)选项:

ls -lH ./aliasedname

答案2

使用怎么样readlinkman readlink了解详情。

例如,

[/tmp]$ ls -l
lrwxrwxrwx. 1 root root 9 Jan 16 10:07 mylink -> test-link
-rw-r--r--. 1 root root 0 Jan 16 10:07 test-link

[/tmp]$ readlink -f mylink 
/tmp/test-link

根据您的编辑,您可能会受益于“文件测试操作员

-h 文件是符号链接

相关内容