这个问题是关于我的开发人员笔记本电脑上的 Ubuntu 14.10。
我有一个文件夹,/tmp应用程序使用该文件夹将临时内容放入其中。此应用程序通常在我的 homedir 中创建一个临时文件夹,然后将其删除。由于某种原因,当 homedir 被加密时这不起作用。因此,我/tmp/foo在 homedir 中创建了一个符号链接。我的应用程序可以在那里写入并使其成为临时子文件夹。
现在/tmp/foo每次我重新启动机器时都会被删除。到目前为止,我只是在重新启动后手动重新创建了该文件夹。现在我在/tmp 目录如何清理?有工作要做。
我已经看过了,/etc/init/mounted-tmp.conf但是我的 bashfu,尤其是我的 findfu 不足以做我想做的事。这是该文件的摘录:
Run Code Online (Sandbox Code Playgroud)EXCEPT='! -name . ! ( -path ./lost+found -uid 0 ) ! ( -path ./quota.user -uid 0 ) ! ( -path ./aquota.user -uid 0 ) ! ( -path ./quota.group -uid 0 ) ! ( -path ./aquota.group -uid 0 ) ! ( -path ./.journal -uid 0 ) ! ( -path ./.clean -uid 0 ) ! ( -path "./...security*" -uid 0 )' # Remove all old files, then all empty directories find . -depth -xdev $TEXPR $EXCEPT ! -type d -delete find . -depth -xdev $DEXPR $EXCEPT -type d -empty -delete
我想要做的是添加一个条件,使其删除里面的所有内容/tmp/foo,而不是/tmp/foo它本身。我怎么做?
mgo*_*gor 20
/etc/init/mounted-tmp.conf是mountall包的一部分,因此该包的任何更新和建议的更改都将被还原。
$ sudo dpkg -S /etc/init/mounted-tmp.conf
mountall: /etc/init/mounted-tmp.conf
Run Code Online (Sandbox Code Playgroud)
相反,根据文件系统层次结构标准(FHS);
关于/tmp:
程序不得假定 /tmp 中的任何文件或目录在程序调用之间都保留了下来。
关于/var/tmp:
/var/tmp 目录可用于需要在系统重新引导之间保留的临时文件或目录的程序。因此,存储在 /var/tmp 中的数据比 /tmp 中的数据更持久。
因此,您应该更改符号链接以使用/var/tmp而不是/tmp.
严格来说不是您问题的答案,但您可能会发现/var/tmp这是一个更合适的位置,因为它不会在重新启动后得到清理。它专为在短时间内不应自动丢弃的临时文件而设计。
然而,我经常做的是在 /opt 下为自己创建一个文件夹来存储我不想要在家中的随机东西。这是放置主操作系统控制之外的东西的合适位置。
像这样:
EXCEPT='! -name .
...
! ( -path "./foo" )'
# Remove all old files, then all empty directories
...
find /tmp/foo/* -depth -xdev $TEXPR -delete
Run Code Online (Sandbox Code Playgroud)
例子:
$ cd /tmp/foo/
$ mkdir 1 2 3
$ touch 3 4 5
$ find /tmp/foo/* -depth -xdev $TEXPR -delete
$ ls /tmp/foo/
$
Run Code Online (Sandbox Code Playgroud)
我确实同意用户 aap:如果它们是 tmp 文件,您应该在使用的软件中通过重新创建目录来解决这个问题,或者如果它们不是未清除的 tmp 文件,则使用另一个目录。
| 归档时间: |
|
| 查看次数: |
4912 次 |
| 最近记录: |