Chgrp selectif dans une arborescence

Résolu/Fermé
hexadec Messages postés 24 Date d'inscription mercredi 5 juillet 2000 Statut Membre Dernière intervention 11 octobre 2018 - 13 janv. 2014 à 16:40
hexadec Messages postés 24 Date d'inscription mercredi 5 juillet 2000 Statut Membre Dernière intervention 11 octobre 2018 - 14 janv. 2014 à 11:32
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

9 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
13 janv. 2014 à 16:58
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 ?
0
hexadec Messages postés 24 Date d'inscription mercredi 5 juillet 2000 Statut Membre Dernière intervention 11 octobre 2018
13 janv. 2014 à 17:11
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
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
13 janv. 2014 à 17:26
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 commande
echo
devant...
0
hexadec Messages postés 24 Date d'inscription mercredi 5 juillet 2000 Statut Membre Dernière intervention 11 octobre 2018
13 janv. 2014 à 18:19
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
0
hexadec Messages postés 24 Date d'inscription mercredi 5 juillet 2000 Statut Membre Dernière intervention 11 octobre 2018
14 janv. 2014 à 07:54
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 ?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
14 janv. 2014 à 08:24
Salut,

Non, ce n'est pas normal ;-(

Affiche ce que tu tapes avec 2 ou 3 lignes de sorties.

Voilà un exemple chez moi :

$ find /var -maxdepth 1 -type d ! -group root -exec echo "chgrp toto {}" \;
chgrp toto /var/crash
chgrp toto /var/mail
chgrp toto /var/local
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hexadec Messages postés 24 Date d'inscription mercredi 5 juillet 2000 Statut Membre Dernière intervention 11 octobre 2018
14 janv. 2014 à 10:18
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 {}
...
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
14 janv. 2014 à 10:24
Est-ce que la commande
find . -group propal -print
seule retourne quelque chose ?

Y-at-il au moins un fichier et/ou dossier dans cette arborescence appartenant au groupe
propal
?
0
hexadec Messages postés 24 Date d'inscription mercredi 5 juillet 2000 Statut Membre Dernière intervention 11 octobre 2018
14 janv. 2014 à 10:32
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 ?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
14 janv. 2014 à 10:36
serait-ce les doubles quotes ?
Peut-être ;-\

Essaie avec des quotes simples ou tout simplement avec :
 find . -group propal -exec echo  {} \;
0
hexadec Messages postés 24 Date d'inscription mercredi 5 juillet 2000 Statut Membre Dernière intervention 11 octobre 2018
14 janv. 2014 à 10:47
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 ;-)
0
hexadec Messages postés 24 Date d'inscription mercredi 5 juillet 2000 Statut Membre Dernière intervention 11 octobre 2018
14 janv. 2014 à 10:58
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 ;-)
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
14 janv. 2014 à 11:00
De rien, mais il n'y a rien d'extraordinaire... il faut juste penser avant de faire les choses à tester le(s) possible(s) résultat(s).
0
hexadec Messages postés 24 Date d'inscription mercredi 5 juillet 2000 Statut Membre Dernière intervention 11 octobre 2018
14 janv. 2014 à 11:32
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
0