如何在关闭文件后的特定时间自动删除它?

如何在关闭文件后的特定时间自动删除它?

我正在使用 Ubuntu 12.04,我想知道:有什么方法可以限制文件的生命周期?

我的意思是,例如,我创建了一个文件,在我关闭它 10 分钟后必须自动删除。有什么办法吗?

答案1

这可以inotifywait通过使用inotify-tools包轻松完成(默认情况下未安装):

inotifywait -e close /path/to/file && sleep 600 && rm /path/to/file

这将设置一个监视/path/to/file并等待其关闭。然后 10 分钟(600 秒)后,文件将被删除。

这是一个可以使事情变得简单的脚本:

selfdestroy.sh

#!/bin/bash
if [ $# != 2 ]; then
        echo "$0 <file> <time>"
        exit 1
fi

if [ ! -f $1 ]; then
        echo "File $1 not found."
        exit 1
fi

if (( $2 < 1 )); then
        echo "Time must be > 0."
fi

(inotifywait -e close $1
sleep $2
rm $1) 2>1 >/dev/null &

像这样调用脚本:selfdestroy.sh /path/to/file 600

答案2

您需要编写一个脚本来执行此操作。

使用命令

  • 使用权(阅读文件的内容)-atime
  • 改变状态(修改文件或其属性) -ctime
  • 调整(更改文件的内容)-mtime

  • cron

  • find

删除“.bak”文件的示例脚本

 #!/bin/bash
  find <location> -mtime <value> -type f -name "*.bak" -exec rm -f {} \;

更改脚本的权限(执行)

添加脚本cron并在需要时运行它。

相关内容