免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10643 | 回复: 2
打印 上一主题 下一主题

[文本处理] shell中路径表示方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-06-09 22:18 |只看该作者 |倒序浏览
我想请教一下shell中路径怎么表示的呀我看到的表达式有两种
a=$(shell pod)
b=$(a)/../../../dir
这种表达式是什么意思呀,是表达,当前目录的上面3级目录下面的dir这个目录吗?
C=../../work
这种表达式又是什么意思呢,是表达,当前目录的上面2级目录下面的work目录吗?
那么这两种表达式有什么区别呢,在什么情况下使用第一中b,在什么情况下使用c呢?

论坛徽章:
39
双子座
日期:2014-08-06 17:37:19极客徽章
日期:2016-12-07 14:03:402017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:39:4215-16赛季CBA联赛之新疆
日期:2017-03-24 16:36:1915-16赛季CBA联赛之江苏
日期:2017-04-26 17:19:08黑曼巴
日期:2018-03-07 18:56:5615-16赛季CBA联赛之八一
日期:2018-03-09 10:44:1015-16赛季CBA联赛之江苏
日期:2018-03-12 15:12:1915-16赛季CBA联赛之青岛
日期:2018-03-16 09:13:0515-16赛季CBA联赛之山东
日期:2018-04-27 18:23:0515-16赛季CBA联赛之新疆
日期:2018-05-04 11:29:30
2 [报告]
发表于 2015-06-10 00:01 |只看该作者
回复 1# hao951456


    我所知道路径的方法有2种

1中是从根开始的绝对路径   例如/tmp   /var/log      /etc/sysconfig/network
另外1种就是绝对路径      ./  当前目录       ../   上层目录             ../../  上2层目录

论坛徽章:
11
射手座
日期:2015-08-11 16:10:26辰龙
日期:2015-08-11 16:11:11黑曼巴
日期:2016-04-26 16:58:40
3 [报告]
发表于 2015-06-11 09:24 |只看该作者
假设
a="/1/2/3/4/5/a"
b=$(a)/../../../dir
..表示上一层目录
$(a)/..=/1/2/3/4/5
$(a)/../..=/1/2/3/4
$(a)/../../..=1/2/3
b=/1/2/3/dir

dir=./1
dir=../1
这种写法称为”相对路径“
dir=/1
这种写法称为”绝对路径“,最左边是从根目录/算起的

当前工作目录:
例如:
  1. cd /usr/local/src
  2. bash /home/your.sh
复制代码
/usr/local/src就是当前工作目录,而不是指脚本所处的目录
c=../../work具体是指哪个目录,要依你执行脚本时所处的当前工作目录而定
如果你是在/home/someone下执行的,c的值就是/work
如果你是在/1/2/3/4/5下执行的,c的值就是/1/2/3/work

相对路径一般用在一整套的程序当中,为了可移植性,因为每个人拿到同一套程序不可能都是放在同一个目录底下。
绝对路径一般用在单个脚本当中,优点就是不会因为所处的当前工作目录造成结果不同。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP