Eujd Posted April 12, 2008 Share Posted April 12, 2008 Salut Bon voila, J'ai un petit problème sous ubuntu... J'ai fait un script qui efface le contenu d'un repertoire temporaire. J'ai voulu mettre un controle pour qu'il mdi'indique quand il n'y a pas de fichier dans le repertoire avec un if... voila le code #!/bin/bash set -x for File in `find /opt/lampp/htdocs/SEVE-G/file/download/temp/ -type f 2>/dev/null`; do if [ -n $File ]; then echo No file to delete; else echo $File; fi; done J'ai essayé avec le -n et le -z or (avec le set -x) la seule chose qui s'affiche à l'écran c'est la commande find... ce script fonctionne sous solaris... alors à moins qu'il y ait un bug avec le test -z et le -n... ou alors je suis un boulay... Link to comment Share on other sites More sharing options...
Arafel Posted April 12, 2008 Share Posted April 12, 2008 Salut :) En faite, t'as pas vraiment besoin de ça... sous linux, il existe un truc formidable du nom de tmprotate et tmpwatch qui efface automatiquement tout ce qui se trouve dans /tmp et qui a plus de 7 ou 10 jours (selon ta distrib...) et t'as la même chose (logrotate et logwatch) qui font ça pour ton /var/log/ Link to comment Share on other sites More sharing options...
Eujd Posted April 12, 2008 Author Share Posted April 12, 2008 Salut :)En faite, t'as pas vraiment besoin de ça... sous linux, il existe un truc formidable du nom de tmprotate et tmpwatch qui efface automatiquement tout ce qui se trouve dans /tmp et qui a plus de 7 ou 10 jours (selon ta distrib...) et t'as la même chose (logrotate et logwatch) qui font ça pour ton /var/log/ Le soucis c'est que ce n'est ps un répertoire temp "standard" Link to comment Share on other sites More sharing options...
tyrann27 Posted April 12, 2008 Share Posted April 12, 2008 Ce qui n'est pas un problème réellement Sous ubuntu c'est tmpreaper man tmpreaper pour voir comment ça fonctionne et ne pas oublier de lui spécifier le chemin du dossier. Tu peux évidemment le mettre dans ton crontab pour qu'il le fasse tout seul tous les X jours ou tout les premier du mois, etc... Quand tu veux quoi Link to comment Share on other sites More sharing options...
tuXXX Posted April 12, 2008 Share Posted April 12, 2008 J'ai fait un script qui efface le contenu d'un repertoire temporaire.J'ai voulu mettre un controle pour qu'il mdi'indique quand il n'y a pas de fichier dans le repertoire avec un if... voila le code #!/bin/bash set -x for File in `find /opt/lampp/htdocs/SEVE-G/file/download/temp/ -type f 2>/dev/null`; do if [ -n $File ]; then echo No file to delete; else echo $File; fi; done Il faut toujours mettre des guillemets entre les crocher (donc if [ -n "$File" ] ) J'ai essayé avec le -n et le -z or (avec le set -x) la seule chose qui s'affiche à l'écran c'est la commande find... C'est le "set -x" qui affiche la commande. Et ton code n'affiche rien si le dossier ne contient pas de fichiers (même pas "No file to delete"). Pour le test, si tu veux utiliser un code similaire à ce que tu as mis, tu peux faire ça : #!/bin/sh find "$DIR" -type f 2>/dev/null | while read line do echo "$line" # rm "$line" done Et sinon, tu peux utiliser directement l'option "-delete" de find : $ find "$DIR" -type f -delete (Accessoirement pour vider un dossier, un petit rm -r "$DIR" marche aussi très bien ) Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.