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日

相关文章

  • stl——算法简介

    STL——算法简介 C++标准模板库(STL)是一组丰富的C++模板库,包含了多种数据结构和算法,是现代C++编程中不可或缺的一部分。其中的算法实现了一些经典的计算操作,并被广泛地使用。 STL算法的分类 STL中提供了大量的算法,它们被分为以下一些类别: 非修改性序列算法 查找 (find, find_if, count, binary_search 等)…

    其他 2023年3月28日
    00
  • vue子路由跳转实现tab选项卡

    当使用Vue.js实现子路由跳转来实现tab选项卡时,可以按照以下攻略进行操作: 1. 设置路由 首先,您需要设置Vue的路由,以便支持子路由的跳转。以下是一个示例: // 定义路由 const routes = [ { path: ‘/’, component: Home, children: [ { path: ‘tab1’, component: Ta…

    other 2023年10月12日
    00
  • Android ViewFlipper的详解及实例

    Android ViewFlipper的详解及实例攻略 什么是ViewFlipper? ViewFlipper是Android中的一个布局容器,它可以让你在同一个位置上显示多个子视图,并且可以通过滑动或者自动切换的方式进行切换。 ViewFlipper的使用步骤 在XML布局文件中添加ViewFlipper控件: <ViewFlipper androi…

    other 2023年8月21日
    00
  • ai对象组怎么嵌套?

    当涉及到嵌套AI对象组时,可以按照以下步骤进行操作: 创建一个AI对象组:首先,你需要创建一个AI对象组,用于嵌套其他的AI对象。你可以使用以下代码创建一个AI对象组: “`python from openai import AIObjectGroup group = AIObjectGroup() “` 添加AI对象到组中:接下来,你可以将其他的AI对…

    other 2023年7月27日
    00
  • 苹果iPhone手机怎么设置静态IP iPhone5S设置静态IP方法教程

    苹果iPhone手机设置静态IP攻略 苹果iPhone手机可以通过以下步骤设置静态IP地址。请注意,以下示例是基于iPhone 5S的设置方法,但适用于其他iPhone型号。 步骤一:打开Wi-Fi设置 首先,打开iPhone的设置菜单,然后选择“Wi-Fi”选项。 步骤二:选择网络 在Wi-Fi设置页面,找到并选择你要设置静态IP的网络名称。 步骤三:配置…

    other 2023年7月31日
    00
  • python入门之py字典

    Python入门之Py字典 在Python中,字典是一种无序的数据类型,用于存储键值对。字典中的键必须是唯一的,而值可以是任何类型的对象。本攻略将介绍如何和操作Python字典,并提供两个示例。 创建字典 在Python中,我们可以使用花括号{}或dict()函数来创建字典。以下是创建字典的示例: # 使用花括号创建字典 my_dict = {‘name’:…

    other 2023年5月9日
    00
  • CMD命令行中cd命令使用方法

    当我们在使用 CMD 命令行操作时,经常需要切换当前目录。其中一个常用的命令就是 cd (change directory,改变目录)命令。 本文将会详细讲解 cd 命令在 CMD 命令行中的使用方法,包括常用的选项及其使用方法,并通过具体的示例演示如何使用 cd 命令切换目录。 基本用法 在 CMD 命令行中,使用 cd 命令可以切换当前工作目录。其基本语…

    other 2023年6月26日
    00
  • Mac系统中如何配置JDK环境变量?Mac中JDK环境变量配置教程

    以下是“Mac系统中如何配置JDK环境变量?”的完整攻略: 1. 下载JDK 首先,需要先在Oracle官网下载适合Mac系统的JDK安装包,下载地址为:https://www.oracle.com/java/technologies/javase-downloads.html 下载完成后,双击.pkg文件开始安装。 2. 配置环境变量 2.1 查看Java…

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