5 分钟后使用 shell 脚本删除新创建的文件

Delete a newly created file using shell script after 5 minutes

我正在编写 shell 脚本,我在路径 /path/to/ABC/ABC.txt.
中创建文件 ABC.txt 现在我在脚本的末尾,我想安排一个 cron 作业在 5 分钟后删除这个文件(只一次,不重复)。
我无法在此脚本中播放 5 分钟的广告 sleep,因为它被服务器上的多个用户用于多个 paths/files。在用户执行此脚本 5 分钟后,相应路径中的相应 file.txt 应该被删除。

我从 c​​ronjob 中读到的是,您可以使用 crontab -e 触发脚本,然后定期提供作业符号和脚本路径 H/5 * * * * /bin/sh /path/to/ABC/ABC.txt.

谁能告诉我如何使用 cron 安排此类功能。如果有更好的方法请提出。

使用at命令:

#!/usr/bin/env bash
script_path="$(realpath -s -- "[=10=]")"
# start script
...
# end script
echo "rm -- \"$script_path\"" | at "now + 5 minutes"

使用休眠后台进程:

#!/usr/bin/env bash
script_path="$(realpath -s -- "[=11=]")"
# start script
...
# end script
( sleep 300 && rm -- "$script_path" ) &

使用父 selfdestruct 进程:

编写一个小脚本 selfdestruct 如下所示:

#!/usr/bin/env bash
dt=""; shift
"$@"
( sleep "$dt" && rm -- "" ) &

和运行你的脚本

$ selfdestruct 300 /path/to/script arg1 arg2 arg3