Linux重要命令-basename与dirname

[basename]:

从给定的包含绝对路径的文件名中去除左边目录部分或者同时去除某个后缀的内容(目录的部分),然后返回剩下的部分(非目录的部分)

★常用示例

示例一        # 获取到最后文件名sort
[root@local ~]# basename /usr/bin/sort 
sort

示例二        # 去除文件名后缀
[root@local ~]# basename /usr/include/stdio.h .h 
stdio
[root@local ~]# basename /usr/include/stdio.h stdio.h 
stdio.h

示例三        # 去除文件名后缀方式的另外一种方法
[root@local ~]# basename -s .h /usr/include/stdio.h 
stdio

示例四        # 获取多个目录下的文件列表,以换行符\n为分隔
[root@local ~]# basename -a dir1/file1 dir2/file2
file1
file2

示例五        # 获取多个目录下的文件列表,以NUL为分隔
[root@local ~]# basename -a -z dir1/file1 dir2/file2
file1file2
--------------------- 
 

 

[dirname]:

该命令可以取给定路径的目录部分。这个命令很少直接在shell命令行中使用,我们一般把它用在shell脚本中,用于取得脚本文件所在目录,然后将当前目录切换过去。

★常用示例

示例一:       # /usr/bin为获取到的目录
[root@local ~]# dirname /usr/bin/sort           
/usr/bin

示例二:       # 如无/则获取当前目录.
[root@local ~]# dirname stdio.h                 
.

示例三:         # 含/和无/,其结果和不含/效果一样的
[root@local ~]# dirname /usr/bin                
/usr
[root@local ~]# dirname /usr/bin/               
/usr

示例四:       # 获取多个目录列表,以换行为分隔
[root@local ~]# dirname dir1/file1 dir2/file2    
dir1
dir2

示例五:       # 获取多个目录列表,以NUL为分隔
[root@local ~]# dirname -z dir1/file1 dir2/file2    
dir1dir2
★脚本用法

!/bin/bash  
  
# 跳转到脚本所在目录  
cd $(dirname "$0") || exit 1  
  
# 对上面的脚本的解释
$0                当前Shell程序的文件名
dirname $0        获取当前Shell程序的路径
cd $(dirname $0)  进入当前Shell程序的目录
exit 1            如果获取不到则退出脚本  
--------------------- 

原文:https://blog.csdn.net/Jerry_1126/article/details/79872110 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值