[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Problème "basique" de scripting...



Re-bonjour,

C'est tout à fait ça ;-)
Il ne marchait pas avant mais je ne m'en rendais pas compte vu qu'il n'y
a plus eu aucun fichier ajouté dans le répertoire...
Le find est effectivement une solution plus adaptée...

Merci à tous pour vos réponses.

David.

Le 08/09/2017 à 12:14, Francois Lafont a écrit :
> Hello,
> 
> On 09/08/2017 11:57 AM, David BERCOT wrote:
> 
>> if [ -e "/etc/apt/sources.list.d/*" ]
>> then
>>     rm /etc/apt/sources.list.d/*
>> fi
> 
> Je ne suis pas sûr d'avoir compris comment était
> ton code à l'origine mais je pense qu'il n'était
> pas correct (ce qui ne l'a pas empêché de marcher
> pendant un certain temps semble-t-il).
> 
> Avec les doubles quotes, tu demandes à bash de
> tester si un fichier qui s'appelle * (avec vraiment
> comme nom juste le caractère *) existe dans le
> répertoire /etc/apt/sources.list.d/. Et on imagine
> bien que ce n'est pas ce que tu veux demander à
> bash.
> 
> Sans les doubles quotes, là le caractère * devient
> spécial et bash le développe en fonction de ce qu'il
> y a dans ton répertoire.
> 
> Par exemple si dans /etc/apt/sources.list.d/, tu as
> titi.list et toto.list (et c'est tout) alors tout
> va se passer comme si tu avais écris :
> 
> [ -e /etc/apt/sources.list.d/titi.list /etc/apt/sources.list.d/toto.list ]
> 
> et là tu as fort logiquement une erreur vu que -e
> n'accepte _qu'un seul_ argument, pas plus. D'où le
> message d'erreur que tu obtiens.
> 
> Si le répertoire ne contenait qu'un seul fichier, là
> ça marcherait. En fait, sans les "...", le code marche
> mais juste pour 0 ou 1 fichier dans le répertoire, pas
> plus. :)
> 
> Perso, si je peux éviter les * dans un script, je le
> fais, surtout pour du rm. À ta place je ferais plutôt ceci :
> 
>     find /etc/apt/sources.list.d/ -maxdepth 1 -mindepth 1 -type f -delete
> 
> voire, tant qu'on y ait :
> 
>     find /etc/apt/sources.list.d/ -maxdepth 1 -mindepth 1 -type f -name '*.list' -delete
> 
> J'espère que c'est plus clair pour toi maintenant.
> À+
> 
> --
> François Lafont
> 
> 


Reply to: