首页 > 系统相关 >Linux 中获取文件完整路径的4种方法介绍

Linux 中获取文件完整路径的4种方法介绍

时间:2023-11-29 10:13:13浏览次数:37  
标签:Linux 路径 sample 获取 gliu home txt find

我们都知道,在命令行可以使用 pwd 命令来获取当前目录的完整路径(绝对路径):
pwd
那么,如何获取文件的绝对路径呢?有下列几种方法,可以打印文件的完整路径:
readlink
realpath
find
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 这两种方法对许多新用户来说可能还清楚,不过任何事情总有第一次,能学习到新的东西总是好的。

标签:Linux,路径,sample,获取,gliu,home,txt,find
From: https://www.cnblogs.com/azmydcl/p/17863891.html

相关文章

  • linux存储管理及分区
    存储管理1.添加一块硬盘,并能正确使用它。步骤:添加一块磁盘(虚拟机设置处添加),lsblk能够查看。创建分区fdisk​m查看全部可用的参数​n添加新的分区​d删除某个分区信息​l列出所有可用的分区类型​t改变某个分区的类型​p查看分区信息​w保存并退出​q不保存直接退......
  • Linux文件管理
    Linux文件目录不同于windows平台,Linux的根目录为‘\’,在这一根目录下,存放着一些重要的文件夹,比如bin、etc、home、usr、tmp、root、sbin、var,其中bin用来存放二进制的可执行文件,常用的一些命令存在这里;etc存放系统管理和配置文件;home存放所有用户文件的根目录,是用户主目录的基......
  • linux启动mysql数据库,报错mysql: error while loading shared libraries: libtinfo.so
    如下 原因: 解决方案:1、在/usr/lib64目录里面找一个差不多名称版本的文件进行链接#软连接出一个新的文件sudoln-s/usr/lib64/libtinfo.so.6.1/usr/lib64/libtinfo.so.5若本服务器没有相近版本的文件2、从其他服务器下载一个libtinfo.so.5拷贝进去即可,或者下载相近版本......
  • linux安装MySQL数据库初始化报错
    在使用如下初始化命令进行数据库初始化时报错,./bin/mysqld--user=mysql--basedir=/usr/local/mysql/mysql/--datadir=/usr/local/mysql/mysql/data/--initialize--lower-case-table-names=1; 权限不足导致,修改命令为:./bin/mysqld--user=root--basedir=/usr/local/mysql/m......
  • Linux shell简介
    Linuxshell简介一、什么是shell?shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。为什么要学习和使用shell?Shell属于......
  • docker 拷贝docker中文件,并获取最新
    1、2、#!/bin/bashdate_str=$(date+_%Y_%m_%d_%H_%M_%S.sql.gz)echo'开始备份数据'$date_str#获取容器idmysqlid=`dockerps-aqf"name=mysql57"`#进入mysql容器dockerexec-i${mysqlid}/bin/bash<<'EOF'mysqldump-hlocalhost-uroot......
  • Linux文件权限
    权限的意义在于允许某一个用户或某个用户组以规定的方式去访问某个文件。基本权限UGO  首先介绍U、G、O这三个字母所代表的含义。   U:owne,属主   G:group,属组   O:other,其他用户  Linux系统通过U、G、O将用户分为三类,并对这三类用户分别设置三种基......
  • Linux文件权限
    权限的意义在于允许某一个用户或某个用户组以规定的方式去访问某个文件。基本权限UGO  首先介绍U、G、O这三个字母所代表的含义。   U:owne,属主   G:group,属组   O:other,其他用户  Linux系统通过U、G、O将用户分为三类,并对这三类用户分别设置三种基......
  • Linux中存储的基本管理
    Linux中存储的基本管理存储管理方式是Linux中的基本知识,这部分内容主要有设备识别,设备查看,设备挂载,设备文件的查找,磁盘的分区等,下面我们来针对每个部分进行分别讲解。一、设备查看fdisk-l查看磁盘分区情况lsblk设备使用情况blkid设备管理方式及设备iddf查看正在被......
  • Linux进程管理
    一、Linux下的进程每个用户均可同时运行多个程序。为了区分每一个运行的程序,Linux给每个进程都做了标识,称为进程号(processID),每个进程的进程号是唯一的。Linux给每个进程都打上了运行者的标志,用户可以控制自己的进程:给自己的进程分配不同的优先级,也可以随时终止自己的进程。......