确定 macOS 上的当前用户临时目录

Determine current user temp directory on macOS

提问人: 提问时间:9/13/2019 最后编辑:Mark Setchell 更新时间:1/7/2020 访问量:750

问:

如何在macOS中打印特定的用户临时目录?它应该能够根据当前登录的用户确定临时目录。我看到我当前的用户临时目录设置为/Users/myuser/private/tmp,但我没有通用的方法来获取它

谷歌搜索了一下,它使用 $TMPDIR 重新推荐,但看起来我的用户临时目录在某种程度上设置为 /Users/myuser/private/tmp

我应该能够确定确切的 tmp 目录,无论当前用户是 root 用户还是其他用户

macOS OSX-雪豹

评论

1赞 Mark Setchell 9/13/2019
某事怎么能“有点设置”?当然,它要么设置为那个,要么不是?我不确定你想解决什么问题,但作为参考,如果我这样做,我会得到echo $TMPDIR/var/folders/0m/f8tx2qn9179f9g1pmg1g2ymr0000gn/T/

答:

0赞 NuclearPeon 1/7/2020 #1

相关 SO 问答,跨平台:在 Python 中获取临时目录的跨平台方式 这是非常通用的。

在 Qt5 中:

#include <QCoreApplication>
#include <QTemporaryDir>
#include <QDebug>

int main(int argc, char *argv[])
{
    QTemporaryDir dir;
    if (dir.isValid()) {
        // dir.path() returns the unique directory path
        qDebug() << "Path name: " << dir.path() ;
    }
}

也很通用。

在 bash(终端或脚本)中:echo $TMPDIR

这是特定于用户的,因为如果您运行(在目录之前,您将看到该文件夹归登录用户所有。如果其他用户已登录,则其文件夹受其权限/所有权保护,他们将无法读取/修改其他用户的数据。如果您想了解更多信息,我建议查看 unix/linux/mac 文件和文件夹权限。/var/folders/ls -l /var/folders/.../-Tmp-

new-host-2:Applications ThisIsMe$ ls -l /var/folders/cp/cpI9fK8qG3y4x4sedjGIOE+++TI/ 
total 0
drwx------  16 ThisIsMe  staff  544 Jan  6 22:12 -Caches-
drwx------  11 ThisIsMe  staff  374 Jan  6 22:56 -Tmp-

http://www.filepermissions.com/articles/what-are-file-permissions-in-linux-and-mac https://www.linux.com/tutorials/understanding-linux-file-permissions/

评论

0赞 NuclearPeon 1/7/2020
甚至 xcode 也认为临时目录就是这样。我按照这个 SO 问题 stackoverflow.com/questions/11263692/...,构建了一个示例 Cocoa 项目,并将该行插入 main 函数进行验证。NSLog(@"Temporary directory is: %@", NSTemporaryDirectory());