Chgrp selectif dans une arborescence
Résolu
hexadec
Messages postés
25
Statut
Membre
-
hexadec Messages postés 25 Statut Membre -
hexadec Messages postés 25 Statut Membre -
Bonjour,
Je cherche à changer le groupe toto en titi pour tous les dossiers et fichiers d'une arborescence qui ont en commun le groupe tata.
Je pense que la commande find suivie d'un -exec doit me permettre ça mais ne sais pas la formuler. Pouvez-vous m'aider je vous prie ?
Merci beaucoup
Hexadec comme 0123456789ABCDEF
Je cherche à changer le groupe toto en titi pour tous les dossiers et fichiers d'une arborescence qui ont en commun le groupe tata.
Je pense que la commande find suivie d'un -exec doit me permettre ça mais ne sais pas la formuler. Pouvez-vous m'aider je vous prie ?
Merci beaucoup
Hexadec comme 0123456789ABCDEF
9 réponses
-
Salut,
Je cherche à changer le groupe toto en titi pour tous les dossiers et fichiers d'une arborescence qui ont en commun le groupe tata.
Euh... y'a un truc qui m'échappe là ;-(
T'aurais un exemple plus parlant s'il te plaît ?
-
Merci,
soit une arbo arbo1/arbo2/...
je part de arbo1 et doit changer le groupe grp1 de toute l'arbo, en grp2.
soit selectionner toute les fichiers dont le groupe est grp1 et leur changer le groupe en grp2
-
On est toujours dans le flou ;-\
Dans ton 1er message tu dis :changer le groupe toto en titi pour tous les dossiers et fichiers d'une arborescence
.
Et dans le second :selectionner toute les fichiers dont le groupe est grp1 et leur changer le groupe en grp2
.
Ce qui n'est pas du tout pareil ;-(
Essaie ça :
find arbo1/ -group grp1 -exec echo "chgrp grp2 {}" \;
Ça devrait t'afficher ce qui devrait être fait s'il n'y avait pas la commandeecho
devant...
-
-
Merci infiniment :-)
je teste ça et te tiens au courant, mais ça ressemble a ce que je pensais sans pouvoir le mettre en forme. En tout cas, ta ligne de commande parait bien faire ce que je voudrais.
Si le résultat est bon, j'enlève l'echo et ça devrait rouler comme je l'entend.
Merci encore zipe31 -
Bonjour,
il affiche chgrp grp2 {} en chaine comme s'il n'interprêtait pas le contenu.
On ne voit pas ce qu'il y a dans les accolades. Normal ?
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Voilà ce que j'obtiens
root@tnfspr01:/export/dataB1/ELECpropal# find . -group propal -exec echo "chgrp ELEC {}" \;
chgrp ELEC {}
chgrp ELEC {}
chgrp ELEC {}
chgrp ELEC {}
chgrp ELEC {}
chgrp ELEC {}
chgrp ELEC {}
chgrp ELEC {}
chgrp ELEC {}
chgrp ELEC {}
chgrp ELEC {}
chgrp ELEC {}
chgrp ELEC {}
...
-
Oui je l'ai tenté et j'ai eu droit a une ligne immense de fichiers.
J'en ai selectionné une partie et vérifié qu'ils avaient bien le groupe propal, ce qui est le cas.
Donc la commande find elle, est correcte.
C'est la syntaxe du -exec qui ne doit pas être bonne.
Je l'exécute sur un Solaris 10
Dans le man find on y trouve un exemple -exec rm {} \;
ce qui est la même chose. serait-ce les doubles quotes ? -
YAHOOO !
Là ça fonctionne je relance la même technique avec echo chgrp ELEC {} pour voir le résultat avant de tout casser. Merci pour ta lumière, tu dois y voir la nuit les yeux fermés toi ;-)
-
YEP, je confirme ça fonctionne, tu es sensationnel !
J'obtiens ce coup-ci des choses vraisemblables
...
chgrp ELEC ./siglap.l/al3i.d/segment.l
chgrp ELEC ./siglap.l/al3i.d/segment.l/lisez-moi.lm
chgrp ELEC ./siglap.l/al3i.d/segment.l/circo.cr
chgrp ELEC ./siglap.l/al3i.d/segment.l/cisco2.cd
chgrp ELEC ./siglap.l/al3i.d/segment.l/corps.tx
chgrp ELEC ./siglap.l/al3i.d/segment.l/corps.le
chgrp ELEC ./siglap.l/al3i.d/segment.l/corps2.ka
chgrp ELEC ./siglap.l/al3i.d/segment.l/corel.cr
...
Je peux donc attaquer le grand changement de groupe
MERCIIIIII Maestro ZIPE31 ;-) -
Tu as raison, et c'est grâce à toi que je sais comment désormais.
Ca fait 3 ans que je fais des commandes basiques a longueur de journée et je n'avais pas encore eu l'occasion de faire des commandes comme celle-là. Particulièrement formatrice cette commande.
Merci encore