知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

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

发布时间:2014-09-05 13:54:38作者:知识屋

SHELL命令——取路径和文件名: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的比较酷的代替方法。
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
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜