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.
Vous devez vous connecter pour publier un commentaire.
expérimenter autour de j'ai découvert l'on peut bénéficier de multiples expressions complexes regroupés avec les opérateurs logiques comme ceci:
acclamations,
G
J'ai besoin de trouver un moyen de fournir une codés en dur de la liste d'exclusion de fichiers à ne pas enlever, mais supprimer tout ce qui a été de plus de 30 jours. Voici un petit script pour effectuer une suppression de tous les fichiers de plus de 30 jours, à l'exception des fichiers qui sont répertoriés dans la [exclude_file].
ou vous pourriez faire ceci: