当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : shell脚本中如何判断一个目录是不是另一个目录的子目录
帖子发表于 : 2012-01-13 18:04 
头像

注册: 2008-09-25 20:56
帖子: 720
送出感谢: 11
接收感谢: 5
rt,比如/var/cache目录是/var/././cache/man/zh_CN目录的间接父目录,这种父子关系怎么判断?
第一次写shell,求指教 :em06


_________________
UCHIHA
运气是为白痴准备的


页首
 用户资料  
 
2 楼 
 文章标题 : Re: shell脚本中如何判断一个目录是不是另一个目录的子目录
帖子发表于 : 2012-01-13 18:25 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
realpath <-- 试试这玩意


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。



_________________
评价: 3.7% youqika
 
页首
 用户资料  
 
3 楼 
 文章标题 : Re: shell脚本中如何判断一个目录是不是另一个目录的子目录
帖子发表于 : 2012-01-13 20:24 
头像

注册: 2008-09-25 20:56
帖子: 720
送出感谢: 11
接收感谢: 5
竟然是个c函数 。。。

代码:
$ realpath
bash: realpath: 未找到命令


_________________
UCHIHA
运气是为白痴准备的


页首
 用户资料  
 
4 楼 
 文章标题 : Re: shell脚本中如何判断一个目录是不是另一个目录的子目录
帖子发表于 : 2012-01-13 20:47 
头像

注册: 2008-09-25 20:56
帖子: 720
送出感谢: 11
接收感谢: 5
妈的printf之类的都有啊,realpath算比较常用的吧 :em01
代码:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <limits.h>

int main(int argc, char* argv[])
{
    int ret = 0;

#ifdef PATH_MAX
    static int const sc_path_max = PATH_MAX;
#else
    static int const sc_path_max = pathconf(path, _PC_PATH_MAX);
    if (sc_path_max <= 0) {
        sc_path_max = 4096;
    }
#endif

    if (1 < argc) {
        char* p_realpath = NULL;

        p_realpath = (char*)malloc(sc_path_max);
        ret = (NULL == realpath(argv[1], p_realpath)) ? (-1) : 0;
        if (-1 == ret) {
            printf("[ERROR] get realpath failed.\n");
        } else {
            printf("%s", p_realpath);
        }
        free(p_realpath);
    } else {
        printf("usage: realpath pathname\n");
    }

    return ret;
}



_________________
UCHIHA
运气是为白痴准备的


页首
 用户资料  
 
5 楼 
 文章标题 : Re: shell脚本中如何判断一个目录是不是另一个目录的子目录
帖子发表于 : 2012-01-13 21:29 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
有个工具也叫这名字


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
6 楼 
 文章标题 : Re: shell脚本中如何判断一个目录是不是另一个目录的子目录
帖子发表于 : 2012-01-13 23:55 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
realpath不是应该得到../../xxx 这样的嘛。这怎么判断父子关系呢。

应该都获取绝对路径,然后字符串比较前级。


_________________
● 鸣学


页首
 用户资料  
 
7 楼 
 文章标题 : Re: shell脚本中如何判断一个目录是不是另一个目录的子目录
帖子发表于 : 2012-01-14 1:39 
头像

注册: 2008-09-25 20:56
帖子: 720
送出感谢: 11
接收感谢: 5
eexpress 写道:
realpath不是应该得到../../xxx 这样的嘛。这怎么判断父子关系呢。

应该都获取绝对路径,然后字符串比较前级。

恩,EE正解,朕就是这么干的 :em06


_________________
UCHIHA
运气是为白痴准备的


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译