UOS如何设置系统的临时目录位置的重点在于把前置条件、操作顺序和容易误判的地方分清楚。
统信UOS临时目录需分层重定向:1. 系统级/tmp通过/etc/fstab挂载tmpfs或bind绑定;2. 用户级$XDG_RUNTIME_DIR和$TMPDIR在~/.bashrc中export;3. /var/tmp用systemd-tmpfiles规则重映射或符号链接。
你想把统信UOS系统中程序运行时生成的临时文件(如/tmp、/var/tmp及应用缓存)统一指向一个自定义路径,比如迁移到大容量分区或SSD寿命敏感场景下的非系统盘,但发现系统设置里没有“临时目录”开关——这是因为UOS沿用Linux标准机制,临时目录路径由内核挂载策略、systemd配置和用户级环境变量共同决定,需分层干预。
这一步直接改变根目录下的/tmp行为,影响所有用户和进程,必须使用tmpfs挂载或磁盘目录绑定。
打开终端,执行:sudo nano /etc/fstab。
在文件末尾新增一行(以将/tmp挂载到/data/tmp为例):tmpfs /tmp tmpfs defaults,size=2G,mode=1777 0 0。若要使用真实磁盘目录而非内存,则改写为:/data/tmp /tmp none bind 0 0。
【/data/tmp必须提前创建且权限设为1777:sudo mkdir -p /data/tmp && sudo chmod 1777 /data/tmp】。否则系统启动时挂载失败,可能导致桌面无法加载。
保存退出后执行:sudo mount -a立即生效;重启后自动按fstab规则挂载。
图形界面应用(如浏览器、截图工具)默认读取XDG规范定义的运行时目录,它通常指向/run/user/1000,但可被覆盖。
编辑当前用户shell配置文件:nano ~/.bashrc(如用zsh则改~/.zshrc)。
在文件末尾添加两行:
export XDG_RUNTIME_DIR="/data/runtime"
export TMPDIR="/data/tmp"
执行source ~/.bashrc使当前终端生效;新打开的图形程序将在下次登录后读取该变量。
注意:XDG_RUNTIME_DIR路径不能是tmpfs,必须是可持久化目录,且需确保每次登录时该目录存在并属当前用户——可在~/.bashrc中加一句mkdir -p /data/runtime && chown $USER:$USER /data/runtime自动处理。
/var/tmp用于存放需跨重启保留的临时文件,如打印队列、更新缓存等,由systemd-tmpfiles管理,不可直接挂载tmpfs。
方法一:通过systemd-tmpfiles规则重映射
执行:sudo nano /etc/tmpfiles.d/custom-var-tmp.conf。
写入内容:d /var/tmp 1777 root root - /data/var-tmp(第一字段d表示创建目录,最后字段指定目标路径)。
创建目标目录:sudo mkdir -p /data/var-tmp && sudo chmod 1777 /data/var-tmp。
立即应用规则:sudo systemd-tmpfiles --create。此后所有写入/var/tmp的操作实际落在/data/var-tmp下。
方法二:符号链接(简单但有兼容性风险)
先停用可能正在写入的服务:sudo systemctl stop cups printing.service(示例)。
备份原目录:sudo mv /var/tmp /var/tmp.bak。
建立链接:sudo ln -s /data/var-tmp /var/tmp。
【此操作会导致部分老服务启动失败,仅建议在确认无关键服务依赖原路径时使用】。