Récupérer les droits d'un fichier AIX en num

Résolu/Fermé
Unix4ever - 18 nov. 2008 à 11:48
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 - 18 nov. 2008 à 13:56
Bonjour,


je cherche à récupérer les droits Unix d'un fichier AIX sous forme numérique pour pouvoir remettre les droits plus tard par un chmod.

Par exemple pour le fichier :

-rwxr--r-- user users .... toto

je souhaite récupérer la valeur 744.


Merci de votre aide.
A voir également:

6 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
18 nov. 2008 à 11:51
Salut,

Si la commande "stat" est accessible sur ton système, un simple :
 stat -c %a ton_fichier
devrait faire l'affaire ;-))
0
stat n'est pas disponible sur le serveur AIX que j'utilise et je ne peux pas l'installer.

Merci quand même
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
18 nov. 2008 à 12:10
hello
utiliser perl
perl -e ' printf "%o\n" ,(stat($ARGV[0]))[2] &= 07777' fichier
0
dubcek, c'est pareil sans la commande stat ce n'est pas possible.

:-(
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621 > Unix4ever
18 nov. 2008 à 13:30
c'est un appel interne au perl du system call stat, pas la même chose qu'une commande shell, essaye
0
Unix4ever > dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024
18 nov. 2008 à 13:44
J'ai une erreur, c'est peut-être ma syntaxe perl, je n'ai jamais fait de perl :


perl -e 'printf "%o\n" ,(stat($ARGV[0]))[2] &=07777' /tmp/toto


Can't modify list slice in bitwise and (&) at -e line 1, at EOF
Execution of -e aborted due to compilation errors.
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
18 nov. 2008 à 13:46
essaye
perl -e 'printf "%o\n" ,(stat($ARGV[0]))[2] ' /tmp/toto
ou
perl -e 'x=(stat($ARGV[0]))[2] ; x=x & 07777 ; printf "%o\n",x ' /tmp/toto
pour voir
0

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

Posez votre question
It works!

Merci beaucoup, je crois que je vais me mettre au perl!

A+
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
18 nov. 2008 à 13:56
il faut garder du résultat retourné par stat les 12 derniers bits, d'où le & 07777
0