您可以使用 pwd 命令获取目录的完整路径:
pwd
但是如何在 Linux 中获取文件的绝对路径呢?
有几种方法可以打印文件的完整路径:
- 阅读链接
- 真实路径
- 寻找
- 结合 ls 和 pwd
让我一一向您展示这些命令。 但在此之前,我建议先复习一下绝对路径和相对路径概念的基础知识。
使用 readlink 获取文件路径
的目的 readlink
命令是解析符号链接。 您可以使用它来显示文件的完整路径,如下所示:
readlink -f filename
这是一个 example:
[email protected]:~$ readlink -f sample.txt
/home/abhishek/sample.txt
[email protected]:
使用 realpath 获取完整的文件路径
这 realpath
命令用于解析绝对文件名。 除其他用途外,它还可以显示文件的完整路径。
realpath filename
看看这个 example:
[email protected]:~$ realpath sample.txt
/home/abhishek/sample.txt
[email protected]:~$
如果将其与符号链接一起使用,它将显示原始文件的真实路径。 你可以强制它 不遵循符号链接:
realpath -s filename
这是一个 example 它默认显示源文件的完整路径,然后我强制它显示符号链接,而不是其原始文件。
[email protected]:~$ realpath linking-park
/home/abhishek/Documents/ubuntu-commands.md
[email protected]:~$ realpath -s linking-park
使用find命令获取文件绝对路径
这是 find 命令的内容。 一切都与您为搜索位置提供的目录相关。
如果你给它。 它将显示相对路径。 如果你给它目录的绝对路径,你会得到你正在搜索的文件的绝对路径。
将命令替换与 find 命令一起使用,如下所示:
find $(pwd) -name filename
您可以运行它来查找单个文件的完整路径:
[email protected]:~$ find $(pwd) -name sample.txt
/home/abhishek/sample.txt
或者,您可以将它与一堆匹配特定模式的文件一起使用:
[email protected]:~/Documents/eBooks$ find $(pwd) -name "*.pdf"
/home/abhishek/Documents/eBooks/think-like-a-programmer.pdf
/home/abhishek/Documents/eBooks/linux-guide.pdf
/home/abhishek/Documents/eBooks/absolute-open-bsd.pdf
/home/abhishek/Documents/eBooks/theory-of-fun-for-game-design.pdf
/home/abhishek/Documents/eBooks/Ubuntu 1804 english.pdf
/home/abhishek/Documents/eBooks/computer_science_distilled_v1.4.pdf
/home/abhishek/Documents/eBooks/the-art-of-debugging-with-gdb-and-eclipse.pdf
使用 ls 命令打印完整路径
现在这个有点棘手和混乱。
您可以将环境变量 PWD 与 ls 命令一起使用,以显示文件和目录及其绝对路径:
ls -ld $PWD/*
你会得到这样的输出:
[email protected]:~/test$ ls -ld $PWD/*
-r--rw-r-- 1 abhishek abhishek 0 Jul 27 16:57 /home/abhishek/test/file2.txt
drwxrwxr-x 2 abhishek abhishek 4096 Aug 22 16:58 /home/abhishek/test/new
但是,要使用 ls 命令打印文件的完整路径,您必须像这样使用它:
ls -l $PWD/filename
不是最干净的解决方案,但它有效。
[email protected]:~$ ls -l $PWD/sample.txt
-rw-r--r-- 1 abhishek abhishek 12813 Sep 7 11:50 /home/abhishek/sample.txt
[email protected]:~$
结论
我展示了在 Linux 中获取完整文件路径的四种不同方法。 find 和 ls 命令很常见,而许多 Linux 用户几乎不知道 realpath 和 readlink。 学习新事物总是好的,不是吗?