http://www.linuxidc.com/Linux/2008-09/15517.htm

Linux下获得目录路径比较常用的是pwd命令和getcwd()函数了,但是有时候并不能很容易的match一些比较常用的需求。问题来自闪电的一个问题,他写了一个程序放在一个文件夹里面交给客户,这个文件夹里面有若干应用程序和若干文件,客户可以把这个文件夹放在任意的目录,然后客户使用绝对路径跑文件夹里面的一个程序:/program/a/b/c/d/e/folder/fgh.sh,在客户跑的fgh.sh这个程序里要用到和它在同一个文件夹的其他文件:/program/a/b/c/d/e/folder/1.txt。

  这样就需要在fgh.sh这个程序里面得到它所在目录的绝对路径:/program/a/b/c/d/e/folder。pwd命令只能得到当前目录,也就是跑程序时所在的目录,但不能得到程序所在的目录。dirname恰好就能实现这个功能,使用dirname $0就可以解析出所要的绝对路径/program/a/b/c/d/e/folder。

  后来有想了一下,dirname这个命令实在是不太常用,很难想起。常规一点,其实也可以在程序里面做判断,如果客户使用的是绝对路径跑程序,可以得到参数,就是那一长串的东西/program/a/b/c/d/e/folder/fgh.sh,然后从这个参数解析出所要的路径名:

  filename=/program/a/b/c/d/e/folder/fgh.sh

  filedirectory=${filename%/*.*}

http://www.linuxforum.net/forum/showflat.php?Cat=&Board=vrml&Number=407084&page=46&view=expanded&sb=5&o=all

整理的一些相关资料。

问:

比如有 shell 文件,kk.sh,它有可能在不同的目录下执行, 
我希望: 
如果是 执行 /usr/bin/kk.sh ,希望返回 /usr/bin

如果是 执行 /usr/sbin/kk.sh, 希望返回 /usr/sbin,

请问以下,如何编写 文件 kk.sh呢?

答:

用/usr/bin/dirname解析目录名

[xyb@test test]$ cat d.sh 
#!/bin/sh

TEXTFILE=`dirname $0`/hello.txt 
echo $TEXTFILE 
[xyb@test test]$ ./d.sh 
./hello.txt 
[xyb@test test]$ mkdir adir 
[xyb@test test]$ cp d.sh adir/ 
[xyb@test test]$ adir/d.sh 
adir/hello.txt 
[xyb@test test]$ 


vardir =`dirname $0` 
或者 
varpath r=$0 

转载于:https://www.cnblogs.com/APTX4869/archive/2011/02/05/1949248.html

[转]Linux下使用dirname命令相关推荐

  1. linux 创建目录和删除目录下,Linux下怎么创建目录命令与删除命令

    linux命令在系统中有两种类型:内置Shell命令和Linux命令.接下来是小编为大家收集的Linux下怎么创建目录命令与删除命令,欢迎大家阅读: Linux下怎么创建目录命令与删除命令 1.mkd ...

  2. Linux下使用gnome-terminal命令一键开启工作环境

    Linux下使用gnome-terminal命令一键开启工作环境 文章目录 Linux下使用gnome-terminal命令一键开启工作环境 前言 gnome-terminal使用指南 gnome-t ...

  3. Linux下视频截取命令

    比如你有一个视频,然后你对其中某一段感兴趣,你想把他截取下来,并且不希望画面变差,(当然你也不想花钱买视频编辑软件),可以在Linux下使用如下命令: ffmpeg -ss 00:00:05 -t 0 ...

  4. linux命令输入错误怎么弄,Linux下用shopt命令来帮我们自动纠错输入cd 错误

    下面是关于shopt命令的一些参数的用法 选项 含义 cdable_vars 如果给cd内置命令的参数不是一个目录,就假设它是一个变量名,变量的值是将要转换到的目录 cdspell 纠正cd命令中目录 ...

  5. linux查看设备内存代码,Linux下内存查看命令(示例代码)

    在Linux下面,我们常用top命令来查看系统进程,top也能显示系统内存.我们常用的Linux下查看内容的专用工具是free命令. Linux下内存查看命令free详解: 在Linux下查看内存我们 ...

  6. linux下Vi编辑器命令大全

    linux下Vi编辑器命令大全 /根目录下的文件夹 输入"/",回车 里面有很多文件夹,如:etc,home,lib,mnt等等 etc:存放用户名和密码 home:每个用户有个文 ...

  7. [20161229]linux下使用oclumon命令(rac)

    [20161229]linux下使用oclumon命令(rac).txt --11G RAC下grid 存在一个命令oclumon可以了解监测群集健康.简单了解一下. 1.环境: SYS@+ASM1& ...

  8. Linux下使用mail命令发送邮件

    因为需要经常备份网站的数据,所以了解并学习了下linux下如何通过shell来发送邮件,这里以CentOS为例,使用mail命令来进行外部邮件的发送.mail命令的语法如下: Usage: mail ...

  9. 【Linux】5.linux下的export命令和环境变量

    linux下的export命令和环境变量 linux中在 profile 或者 bashrc 或者其他类似的文件中设置环境变量时(比如PATH),如果没有export,那么只能在直接启动的shell中 ...

最新文章

  1. pywebio 和 pyecharts天生一对
  2. 2048小游戏主要算法实现
  3. jwt:token的解析
  4. SQL 2005中pivot and unpivot的用法
  5. 微信公众号开发 [03] 结合UEditor实现图文消息群发功能
  6. 关于我自己的三个层次
  7. php accesscontrolalloworigin,设置Access-Control-Allow-Origin实现跨域访问
  8. 1.0jpa 2.0_EasyCriteria 2.0 – JPA标准应该很容易
  9. 纯Java JavaFX 2.0菜单
  10. LeetCode 1718. 构建字典序最大的可行序列(贪心+回溯)
  11. 好的测试用例应能证明软件是正确的.,好的测试用例应能证明软件是正确的。...
  12. Leetcode796.Rotate String旋转字符串
  13. 使cmd窗口不自动关闭
  14. 软件安装包制作工具installshield 2020 R1的安装教程
  15. \t\t[生活小妙招]脚气 脚臭 损人不利己之疾病
  16. 580刷590bios_身价瞬间涨几百 RX 480刷bios变身RX 580
  17. leetCode 3,js解法
  18. vlc搭建流媒体转发服务器
  19. RS485通信学习笔记
  20. Linux Kernel Panic报错解决思路

热门文章

  1. linux cp 强制覆盖
  2. FPGA学习笔记之Altera FPGA使用JIC文件配置固化教程
  3. Linux移植随笔 tslib
  4. 39 | 案例篇:怎么缓解 DDoS 攻击带来的性能下降问题?
  5. 所有受限制的应用程序包_【译】使用Blazor构建桌面应用
  6. IT人士的知识管理-第一篇
  7. 函数计算搭建小程序Web应用后端服务
  8. 想咸鱼翻身不粘锅?加油
  9. 朱峰谈概念设计(三):可信的设计
  10. 资深美术分享:游戏开发如何确定画风?