在目录路径中使用外壳符号

Use shell symbols in directory path

本文关键字:外壳 符号 路径      更新时间:2023-10-16

我想用我的程序打开一个文件,我想使用shell符号来更容易地定位文件。在运行时使用shell之前,有没有一种简单的方法可以让shell展开我的文件路径。我正在寻找一个能做到这一点的函数。

~/.foo.bar->/home/someuser/.foo.bar

有没有一些简单的方法可以让shell在打开文件之前预处理文件的路径?

您可以使用wordexp:

#include <wordexp.h>
std::string wordexp(std::string var, int flags = 0)
{
    wordexp_t p;
    if(!wordexp(var.c_str(), &p, flags))
    {
        if(p.we_wordc && p.we_wordv[0])
            var = p.we_wordv[0];
        wordfree(&p);
    }
    return var;
}
int main()
{
    std::cout << wordexp("~/test") << 'n';
}