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

yizhihongxing

当我们需要对文件进行操作时,我们通常需要知道文件名和目录名。在shell脚本中,提取文件名和目录名是一项很常见的任务。下面是详细讲解“shell提取文件名和目录名的方法实现”的攻略:

1.提取文件名

我们可以使用基于参数替换的方法来提取文件名。具体方法如下:

  • 使用$去掉文件路径中最后一个‘/’之前的内容,保留最后一个‘/’之后的文件名部分即可。

例如:

$ filepath="/home/user1/test.txt"
$ echo ${filepath##*/}

输出:

test.txt

在上述示例中,使用${filepath##*/}可去掉filepath变量中最后一个'/'之前的内容,然后输出test.txt.

  • 使用 basename 命令提取文件名。

basename 命令用于去除目录路径,仅保留原文件名。例如:

$ filepath="/home/user1/test.txt"
$ basename $filepath

输出:

test.txt

在上述示例中,basename 命令可以输出 filepath 变量中的文件名,即test.txt。

2.提取目录名

我们可以使用基于参数替换的方法来提取目录名。具体方法如下:

  • 使用$去掉文件路径中最后一个‘/’之后的内容,保留最后一个‘/’之前的部分即可。

例如:

$ filepath="/home/user1/test.txt"
$ echo ${filepath%/*}

输出:

/home/user1

在上述示例中,使用 ${filepath%/*} 可以去除 filepath 变量中的最后一个'/'之后的内容,并输出 test 这个目录路径。

  • 使用 dirname 命令提取目录名

dirname 命令用于输出目录名,去除文件路径,仅保留原目录名。例如:

$ filepath="/home/user1/test.txt"
$ dirname $filepath

输出:

/home/user1

在上述示例中,dirname 命令可以输出 filepath 变量中的目录名,即 /home/user1。

通过上述两种方法,shell脚本中可以很方便地提取出文件名和目录名的信息。

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

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

相关文章

  • mysql8如何设置不区分大小写ubuntu20

    当在Ubuntu 20上安装MySQL 8时,默认情况下是区分大小写的。如果你想要设置MySQL 8不区分大小写,你可以按照以下步骤进行操作: 编辑MySQL配置文件: sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf 在文件中找到[mysqld]部分,并在下面添加以下行: lower_case_table_names…

    other 2023年8月18日
    00
  • win10预览版10102 iso镜像下载 win10预览版10102中文版iso镜像官方下载地址

    Win10预览版10102 ISO镜像下载攻略 Win10预览版10102是Windows 10的一个测试版本,本攻略将详细介绍如何下载Win10预览版10102的中文版ISO镜像。以下是完整的攻略过程: 步骤一:访问官方下载页面 首先,你需要访问微软官方的下载页面来获取Win10预览版10102的ISO镜像。你可以在浏览器中输入以下网址来访问官方下载页面:…

    other 2023年8月4日
    00
  • Android App开发中ViewPager组件的入门使用教程

    Android App开发中ViewPager组件的入门使用教程 ViewPager是Android开发中常用的组件之一,它可以实现左右滑动切换不同的页面。下面是一个详细的入门使用教程,包含两个示例说明。 步骤一:添加ViewPager到布局文件 首先,在你的布局文件中添加ViewPager组件。例如,你可以在XML文件中添加以下代码: <androi…

    other 2023年9月7日
    00
  • CentOS 增加IP地址的方法

    CentOS 增加IP地址的方法 在 CentOS 操作系统中,可以通过以下步骤来增加IP地址: 步骤一:编辑网络配置文件 首先,我们需要编辑网络配置文件以添加新的IP地址。打开终端并执行以下命令: sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0 这里的 eth0 是网卡的名称,根据实际情况可能会有所不同。…

    other 2023年7月30日
    00
  • 详解android在mob平台实现qq登陆和分享

    标题:详解Android在Mob平台实现QQ登录和分享 介绍 本文将详细讲解如何在Android应用程序中使用Mob平台实现QQ登录和分享功能。Mob是一个第三方平台,可以提供各种社交媒体和服务的API接口。本文假设您已经注册了一个Mob用户帐号,并且在Mob平台上已经激活了QQ登录和分享服务。 步骤一:集成Mob SDK 首先,您需要将Mob SDK集成到…

    other 2023年6月26日
    00
  • 常用邮箱的imap/pop3/smtp设置

    常用邮箱的IMAP/POP3/SMTP设置 在日常工作、学习中,很多人都需要使用电子邮件来进行信息交流。下面介绍一些常见邮箱的IMAP、POP3和SMTP设置,以便大家更好地使用电子邮件服务。 1. Gmail IMAP设置 服务器名称:imap.gmail.com 端口号:993 安全连接:SSL/TLS POP3设置 服务器名称:pop.gmail.co…

    其他 2023年3月28日
    00
  • android 一些工具类汇总

    Android 一些工具类汇总 在Android开发中,我们经常会使用一些工具类来简化开发过程,提高效率。本攻略将介绍一些常用的Android工具类,并提供两个示例说明。 1. 文件操作工具类 文件操作是Android开发中常见的任务之一。以下是一个示例的文件操作工具类: public class FileUtils { // 拷贝文件 public sta…

    other 2023年10月13日
    00
  • python简单生成随机姓名的方法示例

    Python简单生成随机姓名的方法示例 在Python中,可以使用随机数生成器来生成随机姓名。以下是一个简单的Python示例,演示如何生成机: “`pythonimport random first_names = [‘张’, ‘王’, ‘李’, ‘赵’, ‘钱’, ‘孙’, ‘周’, ‘吴’, ‘郑’,冯’, ‘陈’, ‘楚’, ‘卫’, ‘蒋’, ‘…

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