mktemp
可以选择使用$TMPDIR
来查找新的临时文件/目录。对于我的应用程序,我不想使用/tmp
,因为它安装在/
上,它占用的空间很小。我宁愿让我的脚本像/app-name/tmp
那样。
如何创建这样的临时目录,以便在重新启动时自动清除它?
当我运行ls -ld /tmp
时,我得到以下输出,结尾显示“t”。那“t”是什么意思?这是重启时自动清理的关键吗?
$ ls -ld /tmp
drwxrwxrwt 32 root root 2072576 Feb 1 18:37 /tmp
我正在使用SLES 11 SP3。
$ uname -a
Linux XYZ 3.0.101-0.47.71-default #1 SMP Thu Nov 12 12:22:22 UTC 2015 (b5b212e) x86_64 x86_64 x86_64 GNU/Linux
答案 0 :(得分:2)
您可以使用TMPDIR=/app-name/tmp start_my_app
调用您的应用(假设您对临时文件使用标准api),并在/ app-name / tmp
模式中的“t”是粘性位,它与temp无关。您可以阅读粘性位here。
要清空文件夹,您可以使用tmpfs(如果您的音量较低)或在init中添加内容,或使用crontab。
答案 1 :(得分:0)
系统不会自动清理tmp,它是启动过程中的脚本。
如果你想清理另一个目录,那么清理你的tmp目录的好地方可能是/etc/rc.local(例如)。