Chgrp selectif dans une arborescence

Résolu
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

9 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    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
  2. hexadec Messages postés 25 Statut Membre
     
    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
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      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
  3. hexadec Messages postés 25 Statut Membre
     
    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
  4. hexadec Messages postés 25 Statut Membre
     
    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
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. hexadec Messages postés 25 Statut Membre
     
    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
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      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
  7. hexadec Messages postés 25 Statut Membre
     
    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
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      serait-ce les doubles quotes ?
      Peut-être ;-\

      Essaie avec des quotes simples ou tout simplement avec :
       find . -group propal -exec echo  {} \;
      0
  8. hexadec Messages postés 25 Statut Membre
     
    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
  9. hexadec Messages postés 25 Statut Membre
     
    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
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      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
  10. hexadec Messages postés 25 Statut Membre
     
    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