Linux shell 提取文件名和目录名的方法

Linux shell 中提取文件名和目录名的方法通常使用shell变量和一些特定命令。以下是提取文件名和目录名的几种方法:

  1. 使用$变量获取当前目录和文件名

在Linux shell中,我们可以使用一些特殊的变量获取当前目录和文件名。其中,$PWD变量表示当前目录的路径,$0变量表示当前脚本的文件名,$1变量表示脚本后的第一个参数(文件名)。

例如,我们可以在Linux shell命令行中使用以下命令获取当前目录和脚本文件名:

echo $PWD
echo $0

输出结果类似于:

/home/user
test.sh
  1. 使用basename和dirname命令

另一种提取文件名和目录名的方法是使用basename和dirname命令。basename命令可以从给定的路径中获取文件名,dirname命令可以从给定的路径中获取目录名。

例如,假设我们有一个文件路径/path/to/file.txt ,我们可以使用以下命令提取其文件名和目录名:

# 获取文件名
basename /path/to/file.txt
# 输出结果:file.txt

# 获取目录名
dirname /path/to/file.txt
# 输出结果:/path/to

示例1:提取文件名

假设我们有一个文本文件 "test.txt",它的绝对路径为 "/home/user/documents/test.txt"。我们可以使用以下命令提取文件名:

# 使用basename命令提取文件名
basename /home/user/documents/test.txt
# 输出结果: test.txt

# 使用$变量来提取文件名
filename=/home/user/documents/test.txt
echo ${filename##*/}
# 输出结果: test.txt

在第二个示例中,##*/是一种使用shell变量来提取文件名的更简单的方法。这个语法可以帮助我们剥离字符串中的目录路径,并保留文件名。

示例2:提取目录名

假设我们有一个文本文件 "test.txt",它的绝对路径为 "/home/user/documents/test.txt"。我们可以使用以下命令来提取目录名:

# 使用dirname命令提取目录名
dirname /home/user/documents/test.txt
# 输出结果: /home/user/documents

# 使用$变量来提取目录名
filename=/home/user/documents/test.txt
echo $(dirname $filename)
# 输出结果: /home/user/documents

在第二个示例中,我们使用了$(…)来调用dirname命令。这种用法也是可以的,这意味着我们需要使用在命令替换中常用的括号方式来执行命令。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux shell 提取文件名和目录名的方法 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • ccproxy序列号及注册码

    ccproxy序列号及注册码 如果你正在使用 CCProxy 网络代理服务器,你可能需要了解如何获得序列号以及注册码,以便继续使用 CCProxy 的所有功能。 前提条件 CCProxy 是一款收费软件,需要购买序列号和注册码才能继续使用。在购买前,你需要确定以下两点: 你需要使用的 CCProxy 版本。 你需要购买的 CCProxy 许可数量,取决于你的…

    其他 2023年3月29日
    00
  • FSO操作文件系统

    FSO 操作文件系统 FSO(FileSystemObject)是 VBScript 的一个操作文件系统的组件,它允许你创建、读取、修改、删除等文件和文件夹。在 JavaScript 中,可以通过 ActiveXObject 来引用 FSO 对象。 引用 FSO 对象 var fso = new ActiveXObject("Scripting.F…

    other 2023年6月27日
    00
  • win10系统下耳机插前面板没有声音怎么办?解决方法

    如果在Win10系统下插入耳机到前面板,但是没有声音,可以尝试以下解决方法: 检查音频驱动程序 首先,需要检查计算机的频驱动程序是否正确安装。可以通过以下步骤检查: 任务栏上右键单击音量图标,选择“音量调节”。 在“音量调节器”窗口中,单击“备属性”。 在“设备属性”窗口中,选择“驱动”选项卡,然后单击“更新驱动程序”按钮。 驱动程序需要更新,系统会自动下载…

    other 2023年5月7日
    00
  • ubuntu安**rothermfc7470d驱动

    Ubuntu安装Brother MFC-7470D驱动 安装Brother MFC-7470D打印机驱动程序是在Ubuntu上使用该打印机的必要步骤。以下是安装Brother MFC-7470D打印机驱动程序的完整攻略。 步骤 以下是安装Brother MFC-7470D打印机驱动程序的步骤: 下载驱动程序:我们需要从Brother官网下载Brother M…

    other 2023年5月6日
    00
  • MySQL中使用表别名与字段别名的基本教程

    MySQL中使用表别名和字段别名可以提高SQL语句的可读性和易用性,同时还可以方便地解决表名和字段名的冲突问题。下面是使用表别名和字段别名的基本攻略: 使用表别名 表别名是将一个表名用另一个更短或更容易理解的别名替换,以便在SQL语句中更方便地引用该表。 使用方法:在FROM子句中使用AS关键字为表名指定别名。 示例1:查询订单(order)表中所有客户信息…

    other 2023年6月25日
    00
  • vue项目中使用TDesign的方法

    下面是使用 TDesign 在 Vue 项目中的具体步骤: 步骤一:安装 TDesign 可以使用 npm 命令行工具进行安装: npm install tdesign-ui 步骤二:配置 TDesign 在 Vue 项目中,可以通过 main.js 或者 App.vue 组件进行全局配置。 1. main.js 方式 在 main.js 文件中导入 TDe…

    other 2023年6月26日
    00
  • 基于C语言字符串函数的一些使用心得

    基于C语言字符串函数的一些使用心得 字符串和字符数组的区别 在C语言中,字符串常常被称为字符数组,因为字符串本身就是由字符组成的数组。一个字符串是一个以空字符(‘\0’)结尾的字符数组。而字符数组则没有这样的限制。 下面是一个字符串和一个字符数组的例子: char str[] = "Hello World!"; // 字符串 char a…

    other 2023年6月20日
    00
  • oracle数据库中日期时间的插入操作

    以下是“Oracle数据库中日期时间的插入操作的完整攻略,过程中包含两个示例说明”的标准格式文本: Oracle数据库中日期时间的插入操作 在Oracle数据库中,日期时间是一种常见的数据类型。本文将介绍如何在Oracle数据库中进行日期时间的插入操作。 1. 插入日期时间 在Oracle数据库中,可以使用TO_DATE函数将字符串转换为日期时间类型。TO_…

    other 2023年5月10日
    00
合作推广
合作推广
分享本页
返回顶部