逛奔的蜗牛

我不聪明,但我会很努力

   ::  :: 新随笔 ::  ::  :: 管理 ::
背景:@import url(http://www.cppblog.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
例如百度云存储的路径是 /Users/Biao/Baidu/百度云同步盘,路径中有中文字符。
有一个 Qt 工程叫 QtTest 存储在 百度云同步盘 里面: /Users/Biao/Baidu/百度云同步盘/QtTest
因为 Qt 工程 QtTest 的路径中有中文字符,所以 QtCreator 是不能编译这个 Qt 工程的。

于是我们就想把这个含有中文的路径映射到一个没有中文的路径,例如 /Users/Biao/BaiduYun
修改这两个目录中的任何一个目录里的数据,另一个目录会自动同步,但是路径却不一样。

很多不支持路径中有中文的软件也可以使用此方法解决。

如果在 Linux 上则很好解决,使用 mount --bind source_directory destination_directory 则就完成了。
但是在 Mac 上却不支持这个命令,不过我们可以用下面两个小程序来创建和删除文件夹的硬链接。

一、创建文件夹的硬链接
#include <unistd.h>
#include <stdio.h>

// Build: gcc -o hlink hlink.c -Wall

int main(int argc, char *argv[]) {
    printf("Usage: assume the program name is hlink\n");
    printf("sudo ./hlink source_directory destination_directory\n");

    if (argc != 3) return 1;

    int ret = link(argv[1], argv[2]);

    if (ret == 0) {
        printf("\n");
        printf("****** Create hard link successful ******\n");
    } else {
        perror("link");
    }

    return ret;
}

1. 在终端里使用命令编译程序,生成可执行文件 hlink:
gcc -o hlink hlink.c -Wall

2. 创建 /Users/Biao/Baidu/百度云同步盘 的硬链接 /Users/Biao/BaiduYun 
(首先BaiduYun这个目录是不存在的,是在执行下面创建硬链接的命令后自动生成的)
 ./hlink /Users/Biao/Baidu/百度云同步盘 /Users/Biao/BaiduYun

二、删除文件夹的硬链接
#include <stdio.h>

// Build: gcc -o hunlink hunlink.c

int main(int argc, char *argv[]) {
    printf("Usage: assume the program name is hunlink\n");
    printf("sudo ./hunlink destination_directory\n");

    if (argc != 2) return 1;

    int ret = unlink(argv[1]);

    if (ret == 0) {
        printf("\n");
        printf("****** Delete hard link successful ******\n");
    } else {
        perror("unlink");
    }

    return ret;
}

1. 在终端里使用命令编译程序,生成可执行文件 hunlink:
gcc -o hunlink hunlink.c

2. 删除 /Users/Biao/Baidu/百度云同步盘 的硬链 /Users/Biao/BaiduYun 
(注意,这里的参数是/Users/Biao/BaiduYun,而不是源文件夹 /Users/Biao/Baidu/百度云同步盘
 ./hunlink /Users/Biao/BaiduYun
posted on 2013-09-09 22:54 逛奔的蜗牛 阅读(2684) 评论(2)  编辑 收藏 引用 所属分类: Mac

评论

# re: Mac:怎么在 Mac 下把百度网盘映射到另一个文件夹[未登录] 2014-07-26 21:47 mac
这个太有用了!!感谢分享!!  回复  更多评论
  

# re: Mac:怎么在 Mac 下把百度网盘映射到另一个文件夹 2015-07-06 09:48 流客
在执行命令的时候,出现了"link: Operation not permitted"的提示,切换到root用户,问题依旧,osx系统10.9.5,有解决方法吗?  回复  更多评论
  


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理