Linux 中如何获取文件的绝对路径
source link: https://www.51cto.com/article/722050.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Linux 中如何获取文件的绝对路径
我们都知道,在命令行可以使用 pwd 命令来获取当前目录的完整路径(绝对路径):
那么,如何获取文件的绝对路径呢?有下列几种方法,可以打印文件的完整路径:
- readlink
- realpath
- ls 和 pwd 组合使用
$ readlink -f sample.txt
/home/gliu/sample.txt
$ realpath -s sample.txt
/home/gliu/sample.txt
$ find $(pwd) -name sample.txt
/home/gliu/sample.txt
下面我们来详细介绍一下这些命令。不过在此之前,我建议先了解一下绝对路径和相对路径概念相关的基础知识。
使用 readlink 获取文件路径
readlink 的最初用途是解析符号链接,不过我们可以用它来显示文件的完整路径,如下为其语法结构:
readlink -f filename
如下为一个例子:
$ readlink -f sample.txt
/home/gliu/sample.txt
使用 realpath 获取文件的完整路径
realpath 原用于解析绝对文件名,在这里我们也可以用它来显示文件的完整路径:
realpath filename
下面是一个例子:
$ realpath sample.txt
/home/gliu/sample.txt
如果使用符号链接,它将显示原始文件的实际路径。你可以强制它不跟随符号链接(即显示当前文件的路径):
realpath -s filename
下面是一个示例,默认情况下它显示了源文件的完整路径,然后我强制它显示符号链接,而不是原始文件:
$ realpath linking-park
/home/gliu/Documents/ubuntu-commands.md
$ realpath -s linking-park
/home/gliu/linking-park
使用 find 命令获取文件绝对路径
下面是使用 find 命令获取文件路径的方法。
在 find 命令中,如果给定的路径是一个点 . ,那么它将显示相对路径;如果给定的是一个绝对路径,那么就可以获取搜索文件的绝对路径。 使用命令占位符与 find 命令一起使用,如下:
find $(pwd) -name filename
我们可以使用这种方式来获取单一文件的绝对路径:
$ find $(pwd) -name sample.txt
/home/gliu/sample.txt
或者,可以使用匹配模式(比如星号 *)来获取一组文件的路径:
$ find $(pwd) -name "*.pdf"
/home/gliu/Documents/eBooks/think-like-a-programmer.pdf
/home/gliu/Documents/eBooks/linux-guide.pdf
/home/gliu/Documents/eBooks/absolute-open-bsd.pdf
/home/gliu/Documents/eBooks/theory-of-fun-for-game-design.pdf
/home/gliu/Documents/eBooks/Ubuntu 1804 english.pdf
/home/gliu/Documents/eBooks/computer_science_distilled_v1.4.pdf
/home/gliu/Documents/eBooks/the-art-of-debugging-with-gdb-and-eclipse.pdf
使用 ls 命令打印完整路径
使用 ls 命令来获取文件的绝对路径,稍微优点复杂。 我们可以在 ls 命令中使用环境变量PWD来显示文件和目录的绝对路径,如下:
ls -ld $PWD/*
使用上述命令,会得到如下输出:
$ ls -ld $PWD/*
-r--rw-r-- 1 gliu gliu 0 Jul 27 16:57 /home/gliu/test/file2.txt
drwxrwxr-x 2 gliu gliu 4096 Aug 22 16:58 /home/gliu/test/new
要使用上述命令打印某个文件的完整路径,可以如下使用:
ls -l $PWD/filename
这虽然不是最好的解决方案,但是很有效,看下面的例子:
$ ls -l $PWD/sample.txt
-rw-r--r-- 1 gliu gliu 12813 Sep 7 11:50 /home/gliu/sample.txt
以上我们介绍了在 Linux 中获取文件完整路径的4种方法,其中 find 和 ls 命令的方式最常见,而 realpath 和 readlink 这两种方法对许多新用户来说可能还清楚,不过任何事情总有第一次,能学习到新的东西总是好的。
关于其他的任何想法,欢迎讨论。
Recommend
-
33
如何根据一个绝对文件路径生成一个相对文件路径 发布于 2018-06-07 19:30 更新于 2020-06-15 09:23 日常的开发中,获取绝...
-
13
linux如何根据进程pid获取路径 发表于 2018-07-31 20:07:47...
-
16
Elisp中如何获取文件的绝对路径 - 暗无天日 Elisp中如何获取文件的绝对路径 如果你想着用 absolute 来搜索相关函数,那是找不到的... 真正的对应函数叫做 file-truename 不过 file-truename
-
7
shell 获取脚本的绝对路径 2021-06-08 22:10:00 https://www.cnblogs.com/FlyFive/p/3640267.html 常见的一种误区,是使用 pwd 命令
-
3
greadlink greadlink 是一个系统自带的处理文件路径的命令,它的用法如下 greadlink -f file_name greadlink -f /tmp /private/tmp Realpath realpath 是...
-
2
os.path.realpath(__file__) 作用:获取当前执行py脚本的绝对路径(在当前工作目录下的绝对路径) __file__ : 表示当前文件的本身,一般值是当前文件的...
-
3
Linux 中的绝对路径和相对路径,有什么区别? 2022-08-29 14:11:10 路径是Linux中最基本的概念之一,这是每个Linux用户都必须知道的。
-
4
Linux 中的相对路径和绝对路径有什么区别? 作者:Linux迷 2022-11-16 10:13:29 绝对路径名和相对路径名这两种路径类型之间有什么区别,您应该在命令中使用哪一种?现在就让我们一起来看看吧。 绝对路径...
-
7
【笔记】Windows10快速复制文件绝对路径 2022-12-21 ...
-
8
前几天写新项目需要用到程序所在绝对路径的时候,发现网上居然一点相关分享都没有。 :_pgmptr 翻箱倒柜找出了几本教程,发现了一个叫_pgmptr的东西。
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK