如何编写一个小脚本来在计算机启动时清除每个目录的文件?

如何编写一个小脚本来在计算机启动时清除每个目录的文件?

我有一台仅供上网的访客电脑。有些用户下载了一些文件并将它们放在桌面上,但电脑没有足够的空间容纳所有访客,不允许将文件放在桌面上。

我想要做的是在计算机启动时清理主目录内的每个文件,但保留音乐、图片、文档和下载等目录结构。

我怎样才能做到这一点?

答案1

您可以安全删除全部文件在主目录中,因为它们是重新创建的,除了用户创建时从中复制的文件外/etc/skel,所以

#!/bin/bash

shopt -s dotglob 
rm -rf /home/username/*
sudo -u username cp -a /etc/skel/* /home/username/

其中username应替换为有意义的内容。

根据您的要求(“计算机启动时”),可以从 执行此操作/etc/rc.local。更可能的是,您希望在每次登录之间执行它,因此将其放在/etc/gdm/PostSession或下/etc/gdm/PreSession

答案2

您正在描述访客会话。我不太清楚它是如何工作的,但在 11.10 中,它默认显示在欢迎屏幕上。该帐户完全符合您的要求,所以问题是您是否愿意花时间在 11.04 上尝试重新创建它,或者您是否宁愿等到您愿意升级到 11.10。它将于周四进入 Beta 1。无论如何,下载并启动实时会话并看看您是否喜欢它并没有什么坏处。如果它正是您想要的,那么您就会知道如何重新创建它。

答案3

创建一个脚本并添加以下内容:

rm -r ~/Music/*
rm -r ~/Pictures/*
rm -r ~/Documents/*
rm -r ~/Videos/*
rm -r ~/Downloads*
rm -r ~/Desktop/*

保存此文件,将其标记为可执行文件,并将其添加到您的启动应用程序中(对于需要清理的帐户)。

这将清除这些目录中的所有文件。但是,清除内容~/本身有点复杂,如果我找到安全的方法来做到这一点,我会更新我的答案。

答案4

你可以做类似的事情

#!/bin/bash

rm -rf /home/Guest/Desktop/*
rm -rf /home/Guest/Documents/*
rm -rf /home/Guest/Downloads/*
rm -rf /home/Guest/Music/*
rm -rf /home/Guest/Pictures/*
rm -rf /home/Guest/Videos/*

将其保存为类似内容cleanup.sh,并使用 使其可执行chmod +x cleanup.sh。然后您可以调用./cleanup。请注意,这会删除一切在这些文件夹中,请谨慎使用。务必将“Guest”更改为您的用户的名称。

您可以将其添加到启动应用程序首选项中,使其在启动时运行。

您还可以将此脚本添加为系统上的 cron 作业,以便它每晚运行。看这里有关 cron 作业的更多信息。

相关内容