[Perl] Lecture du groupe détenteur d'un repertoire Unix

Lecture du groupe détenteur d'un repertoire Unix [Perl] - Perl - Programmation

Marsh Posté le 28-07-2003 à 17:54:52    

Salut,
 
J'aurais besoin de savoir comment faire pour récupérer le groupe détenteur d'un répertoire donné, sous un systeme Unix, et je dois avouer que je galere pas mal pour trouver une commande/technique appropriée.
 
Merci a tous ceux qui pourront me filer des pistes ! :)

Reply

Marsh Posté le 28-07-2003 à 17:54:52   

Reply

Marsh Posté le 28-07-2003 à 17:57:49    

je sais pas. peut etre en récupérant la sortie de ls -l. sinon vu que la fonction C de l'API s'appelle getgid, tu ferais bien de chercher un truc comme ça

Reply

Marsh Posté le 28-07-2003 à 18:04:18    

Taz a écrit :

je sais pas. peut etre en récupérant la sortie de ls -l. sinon vu que la fonction C de l'API s'appelle getgid, tu ferais bien de chercher un truc comme ça


Merci, je vais regarder le 'getgid'
En fait, j'avais fait jusque la un 'ls -l', mais ca semble generer des problemes dans certains cas particuliers, donc je cherchais une solution alternative :)

Reply

Marsh Posté le 28-07-2003 à 18:14:04    

Je crains de ne disposer que de 'getgrgid', qui retourne le nom d'un groupe a partir de son n° :'(

Reply

Marsh Posté le 29-07-2003 à 07:56:53    

[:paulo les gaz]

Reply

Marsh Posté le 29-07-2003 à 09:46:22    

C'était quoi les cas particuliers ou ça marchait pas, parce que normalement quelque chose dans ce genre la doit marcher:

Code :
  1. my $file= "tonDossier";
  2. my $path= "/var/www/html/";
  3. my $cmd = "ls -l $path| grep $file";
  4. my $sysout = `$cmd`;
  5. $sysout =~ s/\s+/ /g;
  6. my @result = split(" ", $sysout);
  7. print "owner: $result[2] group: $result[3]\n\n";


 
Ya juste pour les répertoires "." et ".." je pense que ça marche pas.

Reply

Marsh Posté le 29-07-2003 à 12:26:58    

Anapajari a écrit :

C'était quoi les cas particuliers ou ça marchait pas, parce que normalement quelque chose dans ce genre la doit marcher:

Code :
  1. my $file= "tonDossier";
  2. my $path= "/var/www/html/";
  3. my $cmd = "ls -l $path| grep $file";
  4. my $sysout = `$cmd`;
  5. $sysout =~ s/\s+/ /g;
  6. my @result = split(" ", $sysout);
  7. print "owner: $result[2] group: $result[3]\n\n";


 
Ya juste pour les répertoires "." et ".." je pense que ça marche pas.


Justement, la commande alternative devrait m'aider a voir de quels cas particuliers il s'agit, ou au mieux de marcher correctement.
Je suis bien d'accord que le ls devrait marcher correctement sans ca...

Reply

Marsh Posté le 29-07-2003 à 12:39:56    

Bin sinon t'as toujours la fonction stat() et t'as plus qu'a la coupler avec getpwuid() et getgrgid() pour faire un truc comme ça:

Code :
  1. my $filename = "tonfichier";
  2. my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks)  = stat($filename);
  3. my $name  = getpwuid($uid);
  4. my $group = getgrgid($gid);
  5. print "owner: $name group: $group\n\n";


Reply

Marsh Posté le 30-07-2003 à 11:16:20    

Tout betement :D
 
Ca suffit a passer outre mes cas particuliers (dus a des environnements Unix "mutants" )
 
Merci tres beaucoup a toi :jap: :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed