好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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##*

查看更多关于SHELL命令——取路径和文件名:dirname basename - L的详细内容...

  阅读:64次