linux shell获取文件名和路径

1. 获取文件名: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

3. ${var##*/}

#/bin/bash
var='/dir1/dir2/dir3/a.b.c.d'
 
echo  ${var##*/}

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

结果为:

a.b.c.d

4. ${var#*.}

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

#/bin/bash
var='/dir1/dir2/dir3/a.b.c.d'
 
echo  ${var#*.}

结果为:

b.c.d

5. ${var%/*}

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

#/bin/bash
var='/dir1/dir2/dir3/a.b.c.d'
 
echo ${var%/*}

 结果为:

/dir1/dir2/dir3

6.${var%%.*}

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

#/bin/bash
var='/dir1/dir2/dir3/a.b.c.d'
 
echo ${var%%.*}
结果为:
/dir1/dir2/dir3/a

对${}的总结:

#代表左起,%代表右起

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

  1. #:左起第一个
  2. ##: 左起最后一个
  3. %:右起第一个
  4. %%:右起最后一个
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值