Trouver des fichiers de plus de X jours à l'exclusion de certains autres fichiers

je suis en train d'écrire un script shell, linux et solaris, qui trouve certains des fichiers de plus de X jours, puis les supprime. le truc, c'est que, au cours de ce processus, il existe un couple de fichiers qui ne doivent pas être supprimés.

par exemple à partir de la liste suivante des fichiers j'ai besoin de supprimer *.zip et de le garder *.journal et *.quelque chose.*

1.zip

2.zip

3.journal

préfixe.quelque chose.suffixe

trouver les fichiers et de les nourrir à rm a été facile, mais je vais avoir des difficultés en excluant les fichiers de la liste de suppression.

  • Je voudrais créer un script qui je serait nourrir la suite de trouver, puis dans le script, je voudrais avoir une liste des fichiers à exclure. Très simple, quelque chose comme, if not in list; then rm -rf ${file} else ... fi
  • le problème est que les fichiers soient exclus ne sont pas les mêmes chaque jour. pour être plus précis, ils sont également des fichiers de log générés par certains systèmes
  • Je ne vois pas quel est le problème, vous voulez exclure les fichiers qui se terminent avec .journal et .quelque chose (quoi que cela puisse être), utilisation de rechercher et de localiser ces fichiers. Les enregistrer dans un tableau, puis faire une recherche de tous les fichiers, comparer les fichiers dans le tableau avec les fichiers trouver localiser (lors de la recherche de tous les fichiers)
  • vous avez raison, j'ai été absent de votre point:) cependant, il semble que je peux faire quelque chose de plus élégant de l'intérieur de trouver lui-même: trouver -L chemin -type f \( -name '.le journal' \) -un ! \( -name '.zip' -o -name 'quelque chose' \) -mtime +3. merci néanmoins
  • Assurez-vous que la version de trouver sur Solaris prend en charge que peut genre d'opération.
  • 10x pour le heads-up, je sais que la compatibilité entre linux et solaris est le vrai problème dans cette équation. malgré les difficultés que j'ai jusqu'à maintenant, il semble être en cours d'exécution en douceur à la fois sur les environnements de test
  • Aussi, vous pouvez simplement vérifier le fichier qui se termine dans un script shell, également, pas besoin de courir find deux fois quand j'y pense 🙂 Mais votre solution est la bonne! Content que tu ai eu de travail.

InformationsquelleAutor Morfic | 2010-12-20