dirname - 截取给定路径的目录部分
来源:互联网 发布:农村淘宝的优势 编辑:程序博客网 时间:2024/05/16 01:18
dirname - 截取给定路径的目录部分
本文链接:http://codingstandards.iteye.com/blog/800028 (转载请注明出处)
用途说明
dirname命令可以取给定路径的目录部分(strip non-directory suffix from file name)。这个命令很少直接在shell命令行中使用,我一般把它用在shell脚本中,用于取得脚本文件所在目录,然后将当前目录切换过去。根据手册页上说的“Print NAME with its trailing /component removed; if NAME contains no /’s, output ‘.’ (meaning the current directory).”,似乎说“取给定路径的目录部分” 并不能很准确的概括dirname命令的用途。Linux下还有一个命令是basename,它与dirname相反,是取得文件名称部分。
常用参数
无。
使用示例
示例一 来自手册页的例子
[root@qzt196 ~]# dirname /usr/bin/sort
/usr/bin
[root@qzt196 ~]# dirname stdio.h
.
[root@qzt196 ~]#
示例二
[root@qzt196 ~]# dirname /usr/bin
/usr
[root@qzt196 ~]# dirname /usr/bin/
/usr
注意:此处的输出结果,似乎有点怪。这应该看下dirname命令的源代码才能解释了。
示例三 在bash脚本中的运用
- #!/bin/sh
- # 跳转到脚本所在目录
- cd $(dirname "$0") || exit 1
- # 剩下的部分
这个写法我经常用到,因为有时候脚本执行时无法确定是在哪个目录,比如脚本用在crontab中时。
另一个写法是:cd `dirname $0` 其中反引号··等同于$()。
示例四 与另外一种截取目录的方法的比较
可以用${pathname%/*}截取掉pathname后面的文件部分。
[root@jfht ~]# pathname=/usr/bin/sort; echo $(dirname $pathname) ${pathname%/*}
/usr/bin /usr/bin
[root@jfht ~]# pathname=/usr/bin/; echo $(dirname $pathname) ${pathname%/*}
/usr /usr/bin
[root@jfht ~]# pathname=/usr/bin; echo $(dirname $pathname) ${pathname%/*}
/usr /usr
[root@jfht ~]# pathname=/usr/; echo $(dirname $pathname) ${pathname%/*}
/ /usr
[root@jfht ~]# pathname=/usr; echo $(dirname $pathname) ${pathname%/*}
/
[root@jfht ~]# pathname=/; echo $(dirname $pathname) ${pathname%/*}
/
[root@jfht ~]# pathname=stdio.h; echo $(dirname $pathname) ${pathname%/*}
. stdio.h
[root@jfht ~]#
问题思考
1. 看了示例四的演示之后,怎样使用shell函数来实现dirname命令?
相关资料
【1】脚本部分 linux dirname命令: 截取路径名的目录
- dirname - 截取给定路径的目录部分
- dirname - 截取给定路径的目录部分
- Linux dirname --截取给定路径的目录部分
- 我使用过的Linux命令之dirname - 截取给定路径的目录部分
- python路径相关的函数os.listdir(dirname):列出dirname下的目录和文件
- python路径相关的函数os.listdir(dirname):列出dirname下的目录和文件
- python路径相关的函数os.listdir(dirname):列出dirname下的目录和文件
- 获取网站的全路径跟目录 -- dirname(__FILE__)
- 通过系统调用basename(), dirname()得到当前路径下的文件名和目录名
- [一天几个linux命令] dirname basename 取得路径的文件名与目录名称
- Lua语言实现:截取给定字符串的部分长度,超出部分用省略号“...”替换
- php --- dirname(__FILE__) 获取网站所在目录全路径
- php --- dirname(__FILE__) 获取网站所在目录全路径
- 给定的字符串按着给定的截取长度截取
- asp.net截取给定长度的汉字超出部分以...代替方法
- android将给定图片维持宽高比缩放后,截取正中间的正方形部分
- android将给定图片维持宽高比缩放后,截取正中间的正方形部分
- 截取图片的部分
- TeX文档的基本结构
- F5 F5+Ctrl 浏览器地址 Enter
- 常用命令
- c程序生成过程
- Saliency Detection On Light Field 程序相关注释
- dirname - 截取给定路径的目录部分
- 关于Android中SQLiteDataBase的增删改查的基本使用
- Leetcode Statistics
- 如何进入JAVA的控制面板
- JavaScript_个人笔记3_JavaScript的函数
- 循环-26. 求给定序列前N项和之四(15)
- NOJ 蛇形填数 1094
- c语言操作mysql
- Incorrect key file for table '.\user\user.MYI'; try to repair it