列出文件的完整路径,而不将其与相对相对路径绑定

xen*_*ide 4 ls

我可以这样做

root@server [/home/user/public_html]# ls /home/user/public_html/.htaccess 
Run Code Online (Sandbox Code Playgroud)

但我想这样做

ls --switch .htaccess
/home/user/public_html/.htaccess
Run Code Online (Sandbox Code Playgroud)

是否可以?

Ste*_*fan 5

您将不得不使用findpwd

就像是:

find `pwd` -name .htaccess -maxdepth 1
Run Code Online (Sandbox Code Playgroud)

或者

从这个答案

ls -d `pwd`/.htaccess
Run Code Online (Sandbox Code Playgroud)

您可以使用该$PWD变量来删除不需要的子外壳:

find $PWD -name .htaccess -maxdepth 1
ls -d $PWD/.htaccess
Run Code Online (Sandbox Code Playgroud)

也可以看看:


Sie*_*geX 5

使用find与结合pwd是一个很好的答案,但它创建了两个子shell,是没有必要的。有一个命令可以执行您想要的操作:

readlink -f .htaccess

输出

$ cd /tmp && touch foo
$ ls ./foo
./foo
$ readlink -f ./foo
/tmp/foo
Run Code Online (Sandbox Code Playgroud)

  • `find` 不需要,`\`pwd\` 只是一个子shell,可以用`$PWD` 代替。`readlink -f` 也遵循符号链接,这并不总是需要的。 (2认同)
  • 在 FreeBSD 和 MacOSX 上,这会导致错误 `readlink: wrong option -- f`。有人有其他 *BSD 的解决方案吗? (2认同)