SHELL命令——取路径和文件名:dirname basename

本文介绍了在Shell脚本中如何使用dirname和basename命令来获取文件的路径和去除文件的扩展名。dirname用于提取文件的目录部分,basename则用于提取文件的基础名称,即去除路径和扩展名的部分。
取一个文件存储路径,可以用dirname。使用起来分两种情况:
一、带全路径的,例:aguo@auto-test:~> dirname /home/aguo/insert.sql
         /home/aguo #获得文件所在目录
二、仅仅是文件名的,例:aguo@auto-test:~> dirname Environment
         .   表示路径就是当前目录

取一个文件名(去掉后缀名),可以用basename。这个命令使用起来貌似有些死板。你要完整地写出后缀名。例:
aguo@auto-test:~> basename insert.test.sql test
insert.test.sql
aguo@auto-test:~> basename insert.test.sql sql
insert.test

当然,dirname和basename还有纯shell的比较酷的代替方法。(详见:http://my.oschina.net/chape/blog/128350
dirname:
aguo@auto-test:~> a=/home/aguo/insert.sql
aguo@auto-test:~> echo ${a%/*}
/home/aguo

basename:
aguo@auto-test:~> a=insert.test.sql
aguo@auto-test:~> echo ${a%%.*}
insert
复杂点儿的
a=/home/aguo/insert.test.sql ##只取出不带路径,不带.的文件。
a=${a%%.*} && a=${a##*/} && echo $a

转载于:https://my.oschina.net/OQKuDOtsbYT2/blog/128252

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值