Supprimer des fichiers Solaris plus anciens qu'une date et une heure déterminées

La suppression conditionnelle de fichiers en fonction de leur âge est parfois utile. Cette recette technique décrit une procédure de suppression de fichiers anciens à l'aide de la commande de recherche UNIX.


La commande find a -la réponse expression qui compare les fichiers trouvés à un fichier de référence. Il renvoie les fichiers avec une heure de modification plus récente que le fichier de référence. Pour rechercher des fichiers plus anciens, faites précéder l'expression -newer avec l'opérateur de négation. !.

Si vous ne disposez pas d'un fichier à utiliser avec un horodatage approprié, vous pouvez créer un fichier avec cette recette technique: Créer / modifier un fichier UNIX avec un horodatage arbitraire.

Étant donné le fichier de référence / tmp / timeref, vous pouvez rechercher tous les anciens fichiers dans le répertoire de travail actuel et au-dessous à l’aide de la commande suivante:

trouver . ! -newer / tmp / timeref -exec ls -l {} \; | plus

Cette commande est sûre et ne fournira qu'une longue liste des fichiers cibles, montrant les fichiers une page à la fois. En utilisant cette commande, vous pouvez vous assurer que la syntaxe de la commande est correcte avant de procéder à la suppression irréversible.

Une fois que vous êtes à l'aise avec la syntaxe de recherche, vous pouvez passer à commande pour provoquer la suppression:

trouver . ! -newer / tmp / timeref -exec rm {} \;

Soyez très prudent en utilisant cette commande. Il n’existe pas de moyen simple de récupérer des fichiers sous UNIX. L'utilisation de la version longue de cette commande avec la liste de fichiers procure une grande sécurité, car vous pouvez voir exactement ce qui se passera. Passer à un répertoire et exécuter la commande de recherche qu’il contient à l’aide de la touche. car le chemin fournit une protection supplémentaire contre les erreurs de frappe.