![列出文件的完整路径,而不将其与相对路径绑定](https://linux22.com/image/42013/%E5%88%97%E5%87%BA%E6%96%87%E4%BB%B6%E7%9A%84%E5%AE%8C%E6%95%B4%E8%B7%AF%E5%BE%84%EF%BC%8C%E8%80%8C%E4%B8%8D%E5%B0%86%E5%85%B6%E4%B8%8E%E7%9B%B8%E5%AF%B9%E8%B7%AF%E5%BE%84%E7%BB%91%E5%AE%9A.png)
我可以做到这一点
root@server [/home/user/public_html]# ls /home/user/public_html/.htaccess
但我想这样做
ls --switch .htaccess
/home/user/public_html/.htaccess
是否可以?
答案1
find
与 结合使用pwd
是一个很好的答案,但它会创建两个子 shell,并且不是必需的。有一个命令可以执行您想要的操作:
readlink -f .htaccess
输出
$ cd /tmp && touch foo
$ ls ./foo
./foo
$ readlink -f ./foo
/tmp/foo
答案2
您将必须使用find
和pwd
。
就像是:
find `pwd` -name .htaccess -maxdepth 1
或者
由此回答:
ls -d `pwd`/.htaccess
您可以使用该$PWD
变量来删除不需要的子 shell:
find $PWD -name .htaccess -maxdepth 1
ls -d $PWD/.htaccess
也可以看看:
答案3
realpath
为此目的而存在(查找规范的绝对路径):
$ realpath .htaccess
/home/user/public_html/.htaccess