Isso pode ser feito facilmente usando inotifywait
de inotify-tools
package (não é instalado por padrão):
inotifywait -e close /path/to/file && sleep 600 && rm /path/to/file
Isso configurará uma observação em /path/to/file
e aguardará o fechamento. Então, após 10 minutos (600 segundos), o arquivo será removido.
Aqui está um script para facilitar as coisas:
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 &
Chame o script assim: selfdestroy.sh /path/to/file 600
.