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

Re: Commande find



Arrrghhhhh
finalement y a pas grand chose qui pourrais me satisfaire finalement...

On Sun, Jan 23, 2011 at 01:47:36AM +0100, Jeremie COURREGES-ANGLAS wrote:
> On Saturday 22 January 2011 à 10:36:57PM, Yves Rutschle wrote:
> > On Sat, Jan 22, 2011 at 10:06:27PM +0100, Fabien LUCE wrote:
> > > je viens d'essayer un petit:
> > > tar cjvf test.tar.bz2 $(find . -mindepth 1 -name "*" -exec echo {} +)
> 
> Eeek.
> Y'a un gros souci là.
> Dans ton utilisation de find, tu ne résouds en rien le problème des noms de
> fichiers problématiques, pour une bonne raison : tu laisses le shell
> "splitter" la sortie de find, par la simple utilisation de $(...).
> Tu pourrais, en étant vraiment vicieux, utiliser find pour ta tâche :
> 
> $ find . -mindepth 1 -exec tar cjvf test.tar.bz2 {} +
> 
> Mais ce genre d'utilisation est déconseillée, car on crée ainsi des archives
> qui s'extraient dans le répertoire courant.
> 
> > J'ai peut-être raté un épisode, mais pourquoi ne pas faire
> > un simple:
> >
> > tar cjvf test.tar.bz2 *
> >
> > ?
> 
> Histoire de sauvegarder aussi les fichiers et répertoires cachés ?
> Ou pas...
> 
> > Sinon, j'aurais tendance à ajouter des guillements autour
> > des noms de fichiers qui contiennent des espaces, donc:
> >
> > tar cjvf test.tar.bz2 $(find . -mindepth 1 -name "*" -exec echo \"{}\" +)
> 
> Inutile, le problème intervient lorsque le shell interprète la sortie de la
> substitution $(...).
> De manière générale, utiliser $(...) sans guillemets doubles autour est une
> erreur.
> 
> Pas besoin de mettre des guillemets autour de {} : le shell n'interprète
> pas les noms de fichier car {} est une sémantique interne à find(1).
> find(1) passe directement par un appel à execvp(2) pour lancer la commande,
> donc les noms de fichiers représentés par {} ne sont pas interprétés.
> 
> > Pas testé, donc sans garantie.
> >
> > Y.
> 
> 
> --
> "Free software, free society."
> Jérémie Courrèges-Anglas
> GPG key : 06A11494



-- 
Fabien LUCE
Jabber ID: ftg@lutix.org
Identi.ca: http://identi.ca/ftg
Web: www.lutix.org


Reply to: