Linux Shell系列--realpath 返回给定路径的规范化绝对路径名

一、目的

        在linux系统中有绝对路径、相对路径,还有符号链接,我们在shell脚本中获取一个文件或者路径的绝对路径名称,这个时候就需要realpath命令。

        本篇主要介绍realpath命令的相关内容。

二、介绍

        realpath命令主要功能是解析给定的路径(相对路径、绝对路径、符号链接)并返回该路径的真实的绝对路径。这个命令可以解决符号链接(symlinks)、相对路径以及其它可能导致路径不明确的问题。 

        注意

        上图中红色高亮部分强调了提供的参数(即路径或者文件名)中的除了最后一部分外,其他前级路径必须存在。

         

        上图中红色高亮部分中由于我们系统上不存在"realpathx"这个前级路径,故realpath直接返回错误并打印。

        如果禁止这个错误信息打印可以添加"-q"选项

 

        通过查询"$?"这个特殊的预置变量,我们可以查看上一条命令的执行结果,上图中返回1,说明realpath执行失败。 

        使用示例
realpath /path/to/a/directory/or/file  #绝对路径下的文件
realpath /path/to/a/directory/or/path #绝对路径
realpath ./file #相对路径的文件
realpath ../file #相对路径的文件
realpath ./path #相对路径
realpath ../path #相对路径
realpath path
realpath .
realpath ../.

        运行此命令后,realpath 会返回真实绝对的路径或者文件名,同时验证除文件名后者路径名(最后一个组件)外的每个目录是否存在。如果路径中的任何非末尾目录不存在,那么 realpath 将返回错误消息并退出(而不是生成一个可能不存在的路径)。 

        基本示例

        各个选项的说明 
  • -e 指定的路径或者文件名中的每个前级路径以及最后的一个元素都必须存在,否则该命令执行失败。        ​​​​​​​
  • -m 指定的字符串代表的文件或者路径不需要真实存在,也就是说不检查字符串是否是文件系统的路径名或者文件名。        
  • -q 这个选项在上文中已经讲解,即不对realpath执行出错进行打印。
  • -p 在解析路径时会解决遇到的所有符号链接(symlinks),确保返回的是最终指向的实际文件或目录的绝对路径(默认行为)。
  • --relative-to=DIR 这个选项允许用户指定一个基目录DIR,这样输出的结果将是相对于这个基目录的真实、相对路径。

​​​​​​​

  • --relative-base=DIR 这个选项与--relative-to=DIR类似,只是在处理相对路径时会以绝对路径输出结果。

  • -z realpath可以同时处理多个路径或者文件名,默认依次按行打印结果,这个选项将结果直接拼成一行。

  • -s 这个选项要求不对符号链接进行扩展,即输出结果中仍以符号链接的形式输出。

        以上就是realpath命令的全部内容。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/374172.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

游戏服务器租用多少钱一年?看完再买不吃亏!

2024年更新腾讯云游戏联机服务器配置价格表,可用于搭建幻兽帕鲁、雾锁王国等游戏服务器,游戏服务器配置可选4核16G12M、8核32G22M、4核32G10M、16核64G35M、4核16G14M等配置,可以选择轻量应用服务器和云服务器CVM内存型MA3或标准型SA2实例&am…

GC垃圾回收

文章目录 GC垃圾回收一、垃圾回收概述1、什么是垃圾?2、什么是垃圾回收?3、为什么需要垃圾回收?4、Java垃圾回收机制5、Java垃圾回收区域 二、对象存活判断1、引用计数算法(Python)1)基本思路2)…

C语言——联合体类型

📝前言: 在前面两篇文章:C语言——结构体类型(一)和C语言——结构体(二)中,我们讲述了C语言中重要的数据类型之一:结构体类型,今天我们来介绍一下C语言中的另…

初识C语言·编译与链接

1 翻译环境和运行环境 C语言标准ANSI C 实现C语言代码的时候 一般需要经过两种环境,一是翻译环境,二是运行环境,计算机能识别的是二进制的指令,人写完代码后通过翻译环境,使代码变成计算机能读懂的可执行的机器指令&a…

Mac上软件闪退(意外退出)的解决方法

mac苹果电脑上运行软件会意外退出,怎么办,可以试试下面的方法,亲测可行! 第一种方法: 1、打开访达,进入应用程序目录,找到闪退的软件图标,在软件图标上右键选择“显示简介”&#…

华为OD机试真题C卷-篇3

文章目录 查找一个有向网络的头节点和尾节点幼儿园篮球游戏 查找一个有向网络的头节点和尾节点 在一个有向图中,有向边用两个整数表示,第一个整数表示起始节点,第二个整数表示终止节点;图中只有一个头节点,一个或者多…

配备Apple T2 安全芯片的 Mac 机型及T2芯片mac电脑U盘装系统教程

T2 芯片为 Mac 提供了一系列功能,例如加密储存和安全启动功能、增强的图像信号处理功能,以及适用于触控 ID 数据的安全保护功能。哪些电脑配备了 T2 安全芯片呢,T2芯片mac电脑又如何重装系统呢?跟随小编一起来看看吧! …

Dell服务器iDRAC9忘记密码, 通过RACADM工具不重启 重置密码

系列文章目录 文章目录 系列文章目录前言一、RACADM工具二、linux环境1.解压安装RACADM工具测试RACADM工具重置iDRAC密码 Windows环境 前言 一、RACADM工具 RACADM工具 官网参考信息 https://www.dell.com/support/kbdoc/zh-cn/000126703/%E5%A6%82%E4%BD%95-%E9%87%8D%E7%BD…

跟着cherno手搓游戏引擎【21】shaderLibrary(shader管理类)

前置&#xff1a; ytpch.h&#xff1a; #pragma once #include<iostream> #include<memory> #include<utility> #include<algorithm> #include<functional> #include<string> #include<vector> #include<unordered_map> #in…

天线阵列车载应用——第1章 介绍 1.1节 汽车工业中的天线阵列:应用和频率范围

1.1 汽车工业中的天线阵列:应用和频率范围 无线通信系统的发展需要新的技术来支持更高质量的通信、新的服务和应用。近年来&#xff0c;汽车无线通信市场得到了极大的扩展。现代汽车使用不同的服务:AM/FM收音机、卫星广播(SDARS)、移动电话通信、数字音频广播(DAB)、远程无钥匙…

Mac电脑上好用的设计绘图软件都有哪些,这6款一定不要错过!

Mac上好用的设计绘图软件有Sketch、Adobe XD、Principle、Illustrator和Affinity Designer、AutoCAD等。这些软件都具有操作简便、功能强大、上手容易等特点&#xff0c;能够满足设计师的各种需求。 Affinity Designer Affinity Designer是一款专业的矢量图形设计软件&#x…

LeetCode-第2469题=温度转换

1.题目描述 给你一个四舍五入到两位小数的非负浮点数 celsius 来表示温度&#xff0c;以 摄氏度&#xff08;Celsius&#xff09;为单位。 你需要将摄氏度转换为 开氏度&#xff08;Kelvin&#xff09;和 华氏度&#xff08;Fahrenheit&#xff09;&#xff0c;并以数组 ans …

GaussDB HCS 轻量化部署软件下载指引

一、Support 账号准备 1. 账号说明 华为的软件服务在华为support网站发布&#xff0c;注册该账号后&#xff0c;可以申请软件、下载离线文档&#xff0c;查看技术案例等功能 2. 账号注册 步骤 1&#xff1a;点击如下官方链接 华为运营商技术支持 - 华为 步骤 2&#xff1…

位置内插 PI:基于Positional Interpolation扩大模型的上下文窗口

位置内插 PI&#xff1a;基于Positional Interpolation扩大模型的上下文窗口 如何在不牺牲性能或从头训练的情况下&#xff0c;扩展大型语言模型的上下文窗口以处理长文档或长对话&#xff1f; 论文&#xff1a;https://arxiv.org/pdf/2306.15595.pdf 这篇论文介绍了一种名为位…

fiddler 的用法

fiddler 的用法 .使用fiddler进行抓包 . 使用fiddler进行抓包 举例一些常见的代理工具 1.wireshark:功能非常强大,但是使用起来更复杂一些 2.fiddler:功能虽然比wireshark少,但是使用简单方便,功能也足以应付大部分场景了 安装了fiddler之后,http和https的请求和响应都会被抓包…

OpenGL实现光源位置指示

案例需求&#xff1a; 在三维超声显示中&#xff0c;需要一个光源指示功能来示意光源是从什么方向照向胎儿的&#xff0c;从而帮助用户去理解当前胎儿三维显示的效果。如下图 基于以上需求需要实现以下几点功能&#xff1a; 1. 构造球体模型和光源模型&#xff1b; 2. 绕球体…

【多模态MLLMs+图像编辑】MGIE:苹果开源基于指令和大语言模型的图片编辑神器(24.02.03开源)

项目主页&#xff1a;https://mllm-ie.github.io/ 论文 :基于指令和多模态大语言模型图片编辑 2309.Guiding Instruction-based Image Editing via Multimodal Large Language Models &#xff08;加州大学圣巴拉分校苹果&#xff09; 代码&#xff1a;https://github.com/appl…

全世界 LoRA 训练脚本,联合起来!

太长不看版 我们把 Replicate 在 SDXL Cog 训练器中使用的枢轴微调 (Pivotal Tuning) 技术与 Kohya 训练器中使用的 Prodigy 优化器相结合&#xff0c;再加上一堆其他优化&#xff0c;一起对 SDXL 进行 Dreambooth LoRA 微调&#xff0c;取得了非常好的效果。你可以在 diffuser…

Linux Rootkit实验|0200 基本功能之阻止模块加载

Linux Rootkit实验&#xff5c;0200 基本功能之阻止模块加载 11 May 2017 文章目录 Linux Rootkit实验&#xff5c;0200 基本功能之阻止模块加载实验说明实验环境实验过程控制内核模块加载 实验总结与思考拓展延伸参考资料参考资料 醉里挑灯看剑&#xff0c;梦回吹角连营。八百…

Multisim14.0仿真(五十三)时、分、秒、毫秒数字计时器

一、仿真效果&#xff1a; 二、时钟脉冲配置&#xff1a; 三、24进制计数&#xff1a; 四、60进制计数&#xff1a;