我经常使用/tmp
Linux 机器上的目录来存储临时文件(例如,来自希望我先下载它的站点的 PDF 等),并且我经常使用我的用户名创建一个目录。但是在每次启动时它(包括所有文件)都会被删除。现在我知道我可以把它放进去/var/tmp
,但我想删除它的所有内容,但要保留目录本身。所以:
tmp
|- me # this should stay
| |- foo1 # this should be deleted...
| |- bar1 # ...and this as well
|- other stuff...
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?也许有权限或有特殊配置?
Ste*_*itt 15
我pam-tmpdir
用于此:它在登录时创建一个用户私有的临时目录。要设置它,添加
session optional pam_tmpdir.so
Run Code Online (Sandbox Code Playgroud)
到适当的 PAM 服务;在基于 Debian 的系统上,安装libpam-tmpdir
软件包将为您执行此操作,或者您可以将行添加到/etc/pam.d/common-session
. 下一次登录时,你会发现下一个目录/tmp/user
与您的用户ID,并TMP
和TMPDIR
适当设置。
一种解决方案是使用@reboot
cron 作业:
@reboot mkdir -p "/tmp/$USER"
Run Code Online (Sandbox Code Playgroud)
将其添加到您的 crontab 中将crontab -e
使其在机器启动时执行。
或者,使用
mkdir -p "/tmp/$USER"
Run Code Online (Sandbox Code Playgroud)
在 shell 的启动文件中。
无论哪种情况,您可能还想使用
TMPDIR=/tmp/$USER
export TMPDIR
Run Code Online (Sandbox Code Playgroud)
如果您想使用该目录作为默认临时目录,请在 shell 的启动文件中添加该目录。