Chgrp selectif dans une arborescence

Résolu
hexadec Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -  
hexadec Messages postés 24 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Contributeur Dernière intervention   6 431
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   6 431
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   6 431
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   6 431
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   6 431
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   6 431
 
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   Statut Membre Dernière intervention  
 
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