#dirname介绍

当对文件使用dirname时,返回文件的上级目录,输出是否是绝对路径取决于输入的文件名是绝对路径

如果对目录使用,则返回上级目录

basename命令与dirname相反,读取文件名或最后一级目录名

#dirname的用法

dirname命令可以取给定路径的目录部分(strip non-directory suffix from file name)。这个命令很少直接在shell命令行中使用,我一般把它用在shell脚本中,用于取得脚本文件所在目录,然后将当前目录切换过去。

cd `dirname $0`
如果想获取脚本文件的所在的绝对路径,则可以

cd `dirname $0`
path=`pwd`

#截取路径的其他做法

path=/home/sakura/test.sh
则{path%/*.*}=/home/sakura

其中%表示从path末尾开始匹配,将最短匹配部分删除,其他类似用法如下

{path%%xxx} 从尾开始,最长匹配删除

{path#xxx}  从头开始,最短匹配删除

{path##xxx} 从头开始 最长匹配删除

例如{path##/*/}=test.sh

ps:  *在这里是通配符,表示任意字符或字符串,不是正则里的*

dirname,basename的用法与用途的更多相关文章

  1. dirname basename 截取路径中的目录以及文件名

    dirname basename    截取路径中的目录以及文件名 windows 下面: #include "shlwapi.h"#pragma comment(lib, &qu ...

  2. 总结:man, info, hwclock, cal, type, which, dirname, basename, who, which, whatis, makewhatis, hash, tty

    man, info, help, date, hwclock, cal, shutdown, reboot, halt, poweroff, type, cd, which, dirname, bas ...

  3. C#中相关结构的用法及用途

    C#中Dictionary的用法及用途 http://www.cnblogs.com/linzheng/archive/2010/12/13/1904709.html C#中的Dictionary字典 ...

  4. linux 系统函数之 (dirname, basename)【转】

    转自:http://blog.csdn.net/peter_cloud/article/details/9308333 版权声明:本文为博主原创文章,未经博主允许不得转载. 除非你的原件考虑跨平台. ...

  5. dirname, basename - 分析路径成员

    总览 (SYNOPSIS) #include <libgen.h> char *dirname(char *path); char *basename(char *path); 描述 (D ...

  6. php路径目录解析函数dirname basename pathinfo区别及实例

    php获取路径.目录或文件名称,我们经常会使用到dirname().basename().pathinfo()这三个函数,本文章向大家详细介绍这三个函数的区别以及使用实例,需要的朋友可以参考一下. d ...

  7. c++ dirname() basename()

    http://linux.about.com/library/cmd/blcmdl3_dirname.htm #include <iostream> #include <libgen ...

  8. 【php】php路径目录解析函数dirname basename pathinfo区别及实例

    php获取路径.目录或文件名称,我们经常会使用到dirname().basename().pathinfo()这三个函数,本文章向大家详细介绍这三个函数的区别以及使用实例,需要的朋友可以参考一下. d ...

  9. python中的os.path.dirname与os.path.dirname(__file__)的用法

    python中的os.path.dirname的用法 os.path.dirname(path) 语法:os.path.dirname(path) 功能:去掉文件名,返回目录 如: print(os. ...

随机推荐

  1. JavaScript学习之内存

    初学JavaScript时,看红皮书了解了JS基本类型和引用类型在内存中的位置,结果看了简书里的一篇文章,发现对这块的了解还是有些缺陷. 基本类型 JavaScript中的基本类型有五种:Undefi ...

  2. 关于配置cordova的一些细节

    网上多数资料都是:安装nodejs->通过node js安装cordova->JDK->设置环境变量JAVA_HOME->安装android SDK->设置环境变量AND ...

  3. C语言链表的基本操作

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  4. git工作中常用操作总结

    这篇文章主要记录下工作中常用的git操作.主要是对之前文章记录的问题做个总结,这个其实在idea中操作更加简单 别名配置 在敲git 命令时,其实可以使用别名,比如 commit可以配置为ci 下面是 ...

  5. react-native 使用leanclound消息推送

    iOS消息推送的基本流程 1.注册:为应用程序申请消息推送服务.此时你的设备会向APNs服务器发送注册请求.2. APNs服务器接受请求,并将deviceToken返给你设备上的应用程序 3.客户端应 ...

  6. 【技巧】歪脑筋优化flexbox瀑布流布局方案

    效果先行 需求 在大量"不定宽"元素并排的布局模式下,上图是我们想要的最佳布局但是FlexBox布局虽然枪弹但并不能完全呈现以上布局,于是我们需要结合FlexBox作下小的改动即可 ...

  7. vuex源码阅读分析

    这几天忙啊,有绝地求生要上分,英雄联盟新赛季需要上分,就懒着什么也没写,很惭愧.这个vuex,vue-router,vue的源码我半个月前就看的差不多了,但是懒,哈哈.下面是vuex的源码分析在分析源 ...

  8. 【Android】四大组件归纳总结

    随着学习持续更新 四大组件均可使用android:process="name"在Manifest中声明成独立进程 Activity 生命周期 4种启动模式 Android使用回退栈 ...

  9. 浅谈Java中静态代码块和非静态代码块

    静态代码块: static{} 执行优先级高于非静态的初始化块,它会在类初始化(类初始化这个问题改天再详细讨论)的时候执行一次,执行完成便销毁,它仅能初始化类变量,即static修饰的数据成员. 非静 ...

  10. MySQL 统计行数的 count

    MySQL count() 函数我们并不陌生,用来统计每张表的函数.但如果你的表越来越大,并且是 InnoDB 引擎的话,会发现计算的速度会越来越慢.在这篇文章里,会先介绍 count() 实现的原理 ...