4 votos

Eliminar automáticamente los archivos con más de 3 horas de antigüedad MacOS

Tengo una cámara configurada para tomar una imagen cada pocos segundos y luego la imagen se procesa y ya no es necesaria. ¿Puede alguien ayudarme a escribir un script/servicio que borre los archivos/imágenes de una carpeta que tengan más de 3 horas de antigüedad? Estoy tratando de hacer esto ya que toma una tonelada de espacio si sólo se purga cada 24 horas utilizando Automator.

4voto

user3439894 Puntos 5883

He aquí un ejemplo find que puedes modificar para adaptarlo a tus necesidades:

find '/path/to/files/' -type f -name '*.jpg' -mmin +180 -delete

Yo usaría launchd a ejecute cada 3 horas.

He aquí un ejemplo .plist archivo que ejecutará el find comando cada 3 horas utilizando launchd :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.my.delete.every.three.hours</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/find</string>
        <string>/path/to/files/</string>
        <string>-type</string>
        <string>f</string>
        <string>-name</string>
        <string>*.jpg</string>
        <string>-mmin</string>
        <string>+180</string>
        <string>-delete</string>
    </array>
    <key>RunAtLoad</key>
    <false/>
    <key>StartInterval</key>
    <integer>10800</integer>
</dict>
</plist>

Se guardaría en: $HOME/Library/LaunchAgents/com.my.delete.every.three.hours.plist

Desde Terminal :

touch "$HOME/Library/LaunchAgents/com.my.delete.every.three.hours.plist"
open -e "$HOME/Library/LaunchAgents/com.my.delete.every.three.hours.plist"
  • Ejemplo de copiar y pegar XML código en el abierto TextEdit documento :
  • Modifíquese según sea necesario:
    • Por ejemplo, cambiar /path/to/files/ a la actual camino .
    • Por ejemplo, cambiar *.jpg a la extensión adecuada si no es así: jpg
  • Guarde y cierre el documento.

Continuar en Terminal , a carga el plist archivo :

launchctl load "$HOME/Library/LaunchAgents/com.my.delete.every.three.hours.plist"

A stop y unload el "$HOME/Library/LaunchAgents/com.my.delete.every.three.hours.plist" archivo uso:

launchctl stop "$HOME/Library/LaunchAgents/com.my.delete.every.three.hours.plist"
launchctl unload "$HOME/Library/LaunchAgents/com.my.delete.every.three.hours.plist"

0voto

sdlynx Puntos 19

Puede escribir un bash script que es ejecutado por un cron para que se ejecute con la frecuencia que necesites (por ejemplo, cada minuto, cada hora, etc.). Tendrás que construir el bash script - algunas de las cosas que probablemente necesites son:

  1. Encontrar archivos antiguos
  2. Eliminar los archivos devueltos por el comando find

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X