shell命令之 dirname与basename 区别

一、dirname :

用法
[root@localhost scripts]# dirname --help
Usage: dirname [OPTION] NAME…
Output each NAME with its last non-slash component and trailing slashes
removed; if NAME contains no /'s, output ‘.’ (meaning the current directory).

dirname的主要作用是去除当前指定文件名非目录部分,删除最后一个slashes斜杠后面的内容,只保留父目录

实例:

[root@localhost httpd]# dirname /etc/httpd/
/etc
[root@localhost httpd]# dirname /etc
/

[root@localhost httpd]# dirname /etc/httpd/conf/httpd.conf 
/etc/httpd/conf

总结,如果指定目标是包含完整路径名的文件,则输出该文件的父目录;
如果指定目标是个目录,也输出其父目录,删除最后一个斜杠后面的内容。/etc/httpd/ = /etc/httpd

常用技巧:

$(dirname $0) = dirname $0

这个命令通常写在脚本文件里,他返回这个脚本文件放置的目录。
通常在脚本中通过该命令来定位所要运行程序的相对位置。
这样脚本的可移植性就提高了,扔到任何一台服务器,都可以执行。

二、basename

用法

用于打印输出基本的文件名或目录名。
Print NAME with any leading directory components removed
与dirname相反,basename是删除指定目标前面的引导目录后,输出该目标名。

实例

[root@localhost httpd]# basename /etc/httpd/conf/httpd.conf 
httpd.conf
[root@localhost httpd]# basename /etc/httpd/
httpd
[root@localhost httpd]# basename /etc/
etc
[root@localhost httpd]# basename /etc
etc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值