dirname返回文件所在目录路径,而basename则相反,去掉路径返回最后的文件名。

direname:

用途

从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部分)

语法

dirname String

描述

()# dirname /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts
()# dirname /boot/grub/grub.conf
/boot/grub
()# dirname /etc/inittab
/etc
()# echo `pwd` && dirname modprobe.conf
/etc
.
()#echo `pwd` && dirname sysconfig/network-scripts/
/etc
sysconfig

basename:

用途

返回一个字符串参数的基本文件名称。

语法

basename String [ Suffix ]

描述

basename 命令读取 String 参数,删除以 /(斜杠) 结尾的前缀以及任何指定的 Suffix 参数,并将剩余的基本文件名称写至标准输出。

basename 命令应用以下创建基本文件名称的规则:

  1. 如果 String 参数是 //(双斜杠) 或如果 String 参数包含的都是斜杠字符,则将字符串更改为单个 /(斜杠)。跳过步骤 2 到 4。
  2. 从指定字符串除去任何拖尾的 / 字符。
  3. 如果在 String 参数中剩余任何 / 字符,则除去字符串的前缀直到(包含)最后一个 / 字符。
  4. Suffix 参数

(1)没有Suffix 参数

如果指定 Suffix 参数,且它和字符串中的剩余的字符相同,则不修改此字符串。例如,输入:

[centos@s202 /]$ basename /home/centos/for99.sh for99.sh
for99.sh

如果指定 Suffix 参数,且它和字符串中所有字符都不相同,但和字符串的后缀相同,则除去指定后缀。例如,输入:

[centos@s202 /]$ basename /home/centos/for99.sh sh
for99.
[centos@s202 /]$ basename /home/centos/for99.sh .sh
for99

不能在字符串中查找到指定的后缀不作为错误处理。

[centos@s202 /]$ basename /home/centos/for99.sh for99.sh
for99.sh
[centos@s202 /]$ basename /home/centos/for99.sh for91.sh
for99.sh
[centos@s202 /]$ basename /home/centos/for99.sh for91.ssh
for99.sh

basename 和 dirname命令通常用于 shell 脚本中的命令替换来指定和指定的输入文件名称有所差异的输出文件名称。

退出状态

该命令返回以下退出值:

0                成功完成

〉0  发生错误

示例

  1. 要显示一个 shell 变量的基本名称,请输入:
basename $WORKFILE

此命令显示指定给 shell 变量 WORKFILE 的值的基本名称。如果 WORKFILE 变量的值是 /home/jim/program.c 文件,则此命令显示 program.c

  1. 要构造一个和另一个文件名称相同(除了后缀)的文件名称,请输入:
OFILE=`basename $1 .c`.o

此命令指定给 OFILE 文件第一个位置上的参数($1)的值,但它的 .c 后缀更改至 .o。如果 $1 是 /home/jim/program.c 文件,则 OFILE 成为 program.o。因为 program.o 仅是一个基本文件名称,它标识在当前目录中的文件。

dirname命令和basename命令的更多相关文章

  1. Linux命令之basename 命令

        用途 返回一个字符串参数的基本文件名称. 语法 basename String [ Suffix ] 描述 basename 命令读取 String 参数,删除以 /(斜杠) 结尾的前缀以及任 ...

  2. dirname和basename命令

    dirname返回文件所在目录路径,而basename则相反,去掉路径返回最后的文件名. dirname指令 1.功能:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目 ...

  3. (转)Linux: dirname、basename命令详解

    Linux: dirname.basename命令详解 原文:http://blog.sina.com.cn/s/blog_3f63916f010143vo.html 一.dirname指令 1.功能 ...

  4. dirname和shell常用命令

    $ cd `dirname $0` 和PWD%}  显示当前目录名称${#var}             替换为变量字符个数特殊变量$ 当前SHELL的PID? 前一个命令的退出状态! 后台执行的上 ...

  5. linux basename命令的使用

    用途 返回一个字符串参数的基本文件名称. 语法 basename String [ Suffix ] 描述 basename 命令读取 String 参数,删除以 /(斜杠) 结尾的前缀以及任何指定的 ...

  6. basename 命令

    basename命令的作用是获取脚本的名字 basename 作用:从给定的包含绝对路径的文件名中去除路径,然后返回剩下的文件名 [root@salt-client- sh1]# basename / ...

  7. basename命令详解

    基础命令学习目录首页 摘要:前言bashname命令用于获取路径中的文件名或路径名(获取的时候叶子节点的元素内容)常见用法举例basenamepath获取末尾的文件名或路径名1:[aliyunzixu ...

  8. linux 常用命令: basename 去掉路径和扩展名

      basename: 去掉路径和扩展名 /bin/basename coreutils-8.4-9.el6.x86_64 basename命令用于去掉路径信息,返回纯粹的文件名,如果指定的文件的扩展 ...

  9. linux常用命令(5)rmdir命令

    rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的.(注意,rm - r dir命令可代替rmdir,但是有很大危险性.)删除某目录时也必须具有对父目录的写权限.1.命令格 ...

随机推荐

  1. Unity中的动画系统和Timeline(2) 按钮动画和2D精灵动画

    按钮动画 1 创建按钮后,按钮的Button组件中,Transition我们平时用的时Tint,这次选择Animation 选择Auto Generate Animation,创建一个按钮动画 2 后 ...

  2. 网络编程介绍,C/S 架构,网络通讯协议,osi七层

    网络编程: 什么是网络编程: 网络通常指的是计算机中的互联网,是由多台计算机通过网线或其他媒介相互链接组成的 编写基于网络的应用程序的过程序称之为网络编程 为什么要学习网络编程: 我们已经知道计算机, ...

  3. [转帖]CENTOS6.6下mysql5.7.11带boost和不带boost的源码安装

    CENTOS6.6下mysql5.7.11带boost和不带boost的源码安装 本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuir ...

  4. PLSQL中查到的数据和程序中查询到的不一样

    1.首先看下你的修改或者新增的SQL是否提交.

  5. # IDEA相关知识

    目录 IDEA相关知识 安装目录下: 配置目录下: 工程目录下: 名词解释 IDEA相关知识 安装目录下: bin:启动文件,配置信息,IDEA的一些属性信息 jre64:IDEA自带的运行环境 li ...

  6. Android渐变色xml配置

    这里渐变色: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android=&quo ...

  7. session的垃圾回收机制

    session.gc_maxlifetime session.gc_probability session.gc_divisor session.gc_divisor 与 session.gc_pro ...

  8. python-连接mysql实例

    import pymysql # 创建连接 conn = pymysql.connect(host='192.168.71.140', port=3306, user='root', passwd=' ...

  9. redis的string和list

  10. [转载]MySQL之char、varchar和text的设计

    [转载]MySQL之char.varchar和text的设计 来源:https://www.cnblogs.com/billyxp/p/3548540.html 首先我们先普及一下常识: 1.char ...