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: f...@lutix.org
Identi.ca: http://identi.ca/ftg
Web: www.lutix.org

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: http://lists.debian.org/20110123125107.ga25...@serveur.lutix.org

Répondre à