1. 获取文件名:basename

shell本身提供了获取文件名的命令:basename,该命令可以从路径中提取出文件名(带后缀)。

举个栗子:

#/bin/bash

File=/dir1/dir2/dir3/a.b.c.txt

basename $File

执行的结果为:

a.b.c.txt

上面的栗子输出结果是文件后缀的,若不想带后缀,则:

#/bin/bash

File=/dir1/dir2/dir3/a.b.c.txt

echo $(basename $File .txt)

结果为:

a.b.c

2. 获取路径:dirname

dirname:从路径中提取出目录名

#/bin/bash

File=/dir1/dir2/dir3/a.b.c.txt

dirname $File

结果为:

/dir1/dir2/dir3

上面两个命令是shell提供的,难免有些限制,我们可以使用${}来灵活获取,而且${}可以用来做shell的字符子串提取。

3. ${var##*/}

直接看个栗子:

#/bin/bash

var='/dir1/dir2/dir3/a.b.c.d'

echo  ${var##*/}

上面这个栗子是:左起,找到最后一个'/'字符,返回其后面的内容(不含'/')

上面栗子的结果为:

a.b.c.d

4. ${##*.}

跟上面栗子一样:左起,找到最后一个'.'字符,返回其后面的内容(不含'.')

#/bin/bash

var='/dir1/dir2/dir3/a.b.c.d'

echo  ${var##*/}

结果为:

d

5. ${var#*.}

左起,找到第一个'.'字符,返回其后面的内容(不含'.')

#/bin/bash

var='/dir1/dir2/dir3/a.b.c.d'

echo  ${var#*.}

结果为:

b.c.d

6. ${var%/*}

右起,找到第一个'/'字符,返回开始到该字符的内容(不含'/')

#/bin/bash

var='/dir1/dir2/dir3/a.b.c.d'

echo ${var%/*}

结果为:

/dir1/dir2/dir3

7.${var%%.*}

右起,找到最后一个'.'字符,返回开始到该字符的内容(不含'.')

#/bin/bash

var='/dir1/dir2/dir3/a.b.c.d'

echo ${var%%.*}

结果为:

/dir1/dir2/dir3/a

对${}的总结:

#代表左起,%代表右起

两个符号代表最后一个字符,一个符号代表第一个字符

#:左起第一个

##: 左起最后一个

%:右起第一个

%%:右起最后一个

linux获取文件后缀名,linux shell获取文件名和路径,basename/dirname/${}运用相关推荐

  1. linux服务器文件后缀名,linux服务器备份网站程序并下载到本地(自动)

    windows bat 脚本 新建一个文本文件,将后缀名更改为.bat即可 @echo off ::set T=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2% ...

  2. 通过php获取文件后缀名怎么改,【转】PHP获取文件后缀名的几种方法

    在言会咸的博客转来的文章,还有三种,我以前用过第二种. //PHP获取文件后缀名的几种方法1: function get_file_type($filename){ $type = substr($f ...

  3. 获取文件后缀名(doc.excel)

    checkFileExt(file){ //file是文件对象const fileName = file.name;if(this.fileExts && this.fileExts. ...

  4. MySql 获取文件后缀名

    MySql 获取文件后缀名 SELECT RIGHT(filename, INSTR(REVERSE(filename),'.')) AS suffix FROM File WHERE fileId= ...

  5. File类如何获取文件后缀名

    File类如何获取文件后缀名 /*** 获取指定文件或文件夹的后缀名* @param fileName 文件名称* @return*/public static String getFileSuffi ...

  6. 服务器显示文件后缀名,获取文件后缀名

    获取文件后缀名 内容精选 换一换 文件类型可查询MIME参考手册.获取文件后缀名/** * @description 获取文件后缀名 * @param {String} fileName 文件全名,包 ...

  7. php获取文件后缀及名字,PHP实现获取文件后缀名的几种常用方法_PHP - strrpos

    ...ode>loadClass()方法中的 while (false !== $pos = strrpos($prefix, '\\')) 这行代码应该如何理解? 我觉得应该是: while ...

  8. php页面文件后缀名,PHP中获取文件扩展名的N种方法

    PHP中获取文件扩展名的N种方法 从网上收罗的,基本上就以下这几种方式: 第1种方法: function get_extension($file) { substr(strrchr($file, '. ...

  9. php获取文件后缀名的几种方法

    获取文件后缀的方法有很多种, 差不多能总结出7,8种,原理基本上都分成两种. 第一种: 得到文件名中最后一个"."的位置,然后再进行截取: 第二种: 用explode将文件名以&q ...

最新文章

  1. 命令行 上下文环境 与 相对路径
  2. HTML中常用字符实体
  3. 松开手,你可以拥有更多
  4. csapp学习笔记2021.1.9
  5. python能代替vba吗_VBA会被Python代替吗?
  6. 你听过算法也是可以贪心的吗?
  7. perl-regexp_使用Regexp :: Common在Perl中轻松进行数据验证
  8. 如何在Windows平台下可以方便获取到android的源码?
  9. SpringMVC-01-基本组件与注解式编程
  10. 各种操作系统中密码文件的位置
  11. 4r照片尺寸是多大_数码照片4D、4R、6RW是什么意思,怎样调整4D照片尺寸?
  12. IEEE会议论文批量下载的方法
  13. psvimg格式PSV存档文件解包工具psvimgtools在macOS环境下的使用教程
  14. 游戏1024设计分析
  15. 第2部分 字符串算法(提高篇)--第2章 KMP算法-1468:OKR-Periods of Words
  16. SpringBoot框架的环境搭建与使用
  17. 赛扬J4105和赛扬N5095哪个好
  18. ## DNF地狱猫官方版本公告
  19. 【NDN实验】ndnSIM 2.0: A new version of the NDN simulator for NS-3 全文翻译
  20. 断点恢复执行时的设置

热门文章

  1. WebRTC源码研究(47)WebRCT传输非音视频数据
  2. oracle jdbc执行,java jdbc 执行oracle存储过程
  3. 当SAP遇上马云,智慧企业加速中国数字化转型
  4. 2020年2月26日训练日记
  5. Web中html个人介绍代码,web开发工程师自我介绍示例
  6. spark编程基础python版实验报告_Spark编程基础(Python版)
  7. 从晶体管开始聊聊计算机为什么采用二进制
  8. 人工智能产业盛宴:2019 AIIA开发者大会即将揭幕
  9. 多普达同步软件4.5_我试用过的十几款记账软件
  10. Elasticsearch7.×集群搭建,生命周期策略ilm_policy、索引模板template管理(二)