我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux shellh中如何提取文件名和目录名

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux shellh中如何提取文件名和目录名

这篇文章将为大家详细讲解有关Linux shellh中如何提取文件名和目录名,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

很多时候在使用Linux的shell时,我们都需要对文件名或目录名进行处理,通常的操作是由路径中提取出文件名,从路径中提取出目录名,提取文件后缀名等等。例如,从路径/dir1/dir2/file.txt中提取也文件名file.txt,提取出目录/dir1/dir2,提取出文件后缀txt等。

下面介绍两种常用的方法来进行相关的操作。

一、使用${}

1、${var##*/}
该命令的作用是去掉变量var从左边算起的最后一个'/'字符及其左边的内容,返回从左边算起的最后一个'/'(不含该字符)的右边的内容。使用例子及结果如下:

Linux shellh中如何提取文件名和目录名

从运行结果可以看到,使用该命令,可以提取出我们需要的文件名file.txt。

若使用时在shell程序文件中,可以使用变量来保存这个结果,再加以利用,如file=${var##*/}

2、${var##*.}

该命令的作用是去掉变量var从左边算起的最后一个'.'字符及其左边的内容,返回从左边算起的最后一个'.'(不含该字符)的右边的内容。使用例子及结果如下:

Linux shellh中如何提取文件名和目录名

从运行结果可以看到,使用该命令,可以提取出我们需要的文件后缀。

如果文件的后缀不仅有一个,例如,file.tar.gz,命令${var##*.}仅能提取最后一个后缀,而我想提取tar.gz时该怎么办?那么就要用下面所说的${var#*.}命令了。

3、${var#*.}

该命令的作用是去掉变量var从左边算起的第一个'.'字符及其左边的内容,返回从左边算起第一个'.'(不含该字符)的右边部分的内容。使用例子及结果如下:

Linux shellh中如何提取文件名和目录名

从运行结果可以看到,使用该命令,可以提取出文件的多个后缀。

4、${var%/*}

该命令的使用是去掉变量var从右边算起的第一个'/'字符及其右边的内容,返回从右边算起的第一个'/'(不含该字符)的左边的内容。使用例子及结果如下:

Linux shellh中如何提取文件名和目录名

从运行的结果可以看到,使用该命令,可以提取出我们需要的文件所在的目录

5、${var%%.*}

该命令的使用是去掉变量var从右边算起的最后一个'.'字符及其右边的内容,返回从右边算起的最后一个'.'(不含该字符)的左边的内容。使用例子及结果如下:

Linux shellh中如何提取文件名和目录名

当我们需要建立一个与文件名相同名字(没有后缀)的目录与对应的文件相对应时,就可以使用该命令来进行操作。例如,解压文件的情况就与此类似,我们压缩文件file.zip时,会在与file.zip同级目录下建立一个名为file的目录。

6、${}总结

其实${}并不是专门为提取文件名或目录名的,它的使用是变量的提取和替换等等操作,它可以提取非常多的内容,并不一定是上面五个例子中的'/'或'.'。也就是说,上面的使用方法只是它使用的一个特例。

看到上面的这些命令,可能会让人感到非常难以理解和记忆,其实不然,它们都是有规律的。

#:表示从左边算起第一个

%:表示从右边算起第一个

##:表示从左边算起最后一个

%%:表示从右边算起最后一个

换句话来说,#总是表示左边算起,%总是表示右边算起。

*:表示要删除的内容,对于#和##的情况,它位于指定的字符(例子中的'/'和'.')的左边,表于删除指定字符及其左边的内容;对于%和%%的情况,它位于指定的字符(例子中的'/'和'.')的右边,表示删除指定字符及其右边的内容。这里的'*'的位置不能互换,即不能把*号放在#或##的右边,反之亦然。

例如:${var%%x*}表示找出从右边算起最后一个字符x,并删除字符x及其右边的字符。

看到这里,就可以知道,其实该命令的用途非常广泛,上面只是指针文件名和目录名的命名特性来进行提取的一些特例而已。

二、basename和dirname

${}并不是专门为提取文件名和目录名设计的命令,那么basename和dirname命令就是专门为做这一件事而已准备的了。

1、basename

该命令的作用是从路径中提取出文件名,使用方法为basename NAME [SUFFIX]。

1)从路径中提出出文件名(带后缀),例子如下:

Linux shellh中如何提取文件名和目录名

2)从上面命令的用法中可以看到,后缀(SUFFIX)是一个可选项。所以,若只想提取出文件名file,而不带有后缀,还可以在变量的后面加上后缀名,例子如下:

Linux shellh中如何提取文件名和目录名

2、dirname

该命令的作用是从路径中提取出目录名,使用方法为 dirname NAME

使用例子如下:

Linux shellh中如何提取文件名和目录名

这样就提取出了file.txt文件所在的目录。

注:该命令不仅能提取出普通文件所的目录,它能提取出任何文件所在的目录,例如目录所在的目录,如下:

Linux shellh中如何提取文件名和目录名

它提取出了目录dir2所在的目录dir1.

关于“Linux shellh中如何提取文件名和目录名”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux shellh中如何提取文件名和目录名

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux shellh中如何提取文件名和目录名

这篇文章将为大家详细讲解有关Linux shellh中如何提取文件名和目录名,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。很多时候在使用Linux的shell时,我们都需要对文件名或目录名进行处理,通常的
2023-06-09

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

${}[root@node01 ~]# file=/dir1/dir2/dir3/my.file.txt [root@node01 ~]# echo ${file#*/} dir1/dir2/dir3/my.file.txt删掉第一个 /
2022-06-04

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

本文主要介绍了shell提取文件名和目录名的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-02-16

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

目录一、使用变量操作符 ${}1、${var##*/}2、${var#*.} 3、${var%/*}4、${var%%.*}二、basename和dirname1、basename2、dirname在写shell脚本中,经常会有需要对路径和
2023-02-16

Linux shell 之 提取文件名和目录名的一些方法总结

很多时候在使用Linux的shell时,我们都需要对文件名或目录名进行处理,通常的操作是由路径中提取出文件名,从路径中提取出目录名,提取文件后缀名等等。例如,从路径/dir1/dir2/file.txt中提取也文件名file.txt,提取出
2022-06-04

如何使用Bash Shell获取文件名和目录名

这篇文章主要讲解了“如何使用Bash Shell获取文件名和目录名”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Bash Shell获取文件名和目录名”吧!前言还是今天再写一个自动化
2023-06-09

Linux 中批量提取文件夹下所有目录及文件名称

1、当前目录下打开jfRfEICMD控制台窗口,执行如下bat命令:dir *.*/b>文件名.txt 2、如下图例操作步骤: 打开CMD窗口输入命令生成文件结果截图总结
2022-06-04

shell script如何获取文件名或目录名称

本文小编为大家详细介绍“shell script如何获取文件名或目录名称”,内容详细,步骤清晰,细节处理妥当,希望这篇“shell script如何获取文件名或目录名称”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧
2023-07-02

linux如何显示包含数字的文件名和目录名

在Linux中,可以通过以下命令查找包含数字的文件名和目录名:find:递归搜索,使用“-name”参数过滤。locate:使用预建数据库,使用“-i”和“-d”参数过滤。grep:在文件中搜索模式,使用“-r”和“-l”参数查找文件名。具体语法如下:文件名:find/path/to/directory-name"[0-9]"locate-i"[0-9]"grep-r-l"[0-9]"/path/to/directory目录名:find/path/to/directory-typed-name"[0-9]
linux如何显示包含数字的文件名和目录名
2024-04-02

windows如何获取目录下的文件名

Windows可以使用以下方法来获取目录下的文件名:1. 使用命令行工具:在命令提示符窗口中,使用`dir`命令可以列出当前目录下的文件和文件夹,并显示它们的名称。2. 使用PowerShell:在PowerShell中,可以使用`Get-
2023-09-28

TS如何从目录中提取所有指定扩展名的文件

.ts是一种高清视频封装格式文件,全称为MPEG2-TS,TS表示TransportStream,这篇文章主要介绍了TS如何从目录中提取所有指定扩展名的文件,需要的朋友可以参考下
2023-05-20

怎样在linux下显示中文目录和文件名

这期内容当中小编将会给大家带来有关怎样在linux下显示中文目录和文件名,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。选择一个一劳永逸的方法,就是修改/etc/下的fstab文件,我的fstab内容如下:
2023-06-05

linux Shell如何获取某目录下所有文件夹的名称

这篇文章主要为大家展示了“linux Shell如何获取某目录下所有文件夹的名称”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux Shell如何获取某目录下所有文件夹的名称”这篇文章吧。
2023-06-09

Python获取文件所在目录和文件名的方法

实例如下:import os if __name__ == "__main__": file_path = 'D:/test/test.apk' parent_path = os.path.dirname(file_path) print(
2022-06-04

PHP中怎样获取目录中的文件名

PHP中怎样获取目录中的文件名,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。我们来看一下PHP中怎样去获取目录下的文件相关知识。我们已经了解了在PHP中怎样去打开和关闭目录,在
2023-06-25

使用Bash Shell获取文件名和目录名的简单方法

前言 还是今天再写一个自动化打包脚本,用到了从路径名中获取最后的文件名。这里记录一下实现过程。当然,最后我也会给出官方的做法。(ps:很?澹?迪滞炅瞬欧⑾衷??ash Shell有现成的函数) 获取文件名 假设给定的路径名为:/tmp/cs
2022-06-04

怎么在Linux中使用shell 提取文件名

怎么在Linux中使用shell 提取文件名?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。什么是Linux系统Linux是一种免费使用和自由传播的类UNIX操作系统,是一个
2023-06-09

编程热搜

目录