Convertir un masque de droits en entier

Résolu
Bonjour à tous,

J'aimerai savoir si une commande existe pour convertir une chaine -rw-r--r-- représentant des droits unix en un numérique du type. 555, 575..

Si c'est impossible, comment récupérer via un ls le format numérique des attributions de droits ( 555, 575..)

Cela pour dupliquer à l'identique une recopie sur un autre serveur de l'arborescence d'un dossier.

Merci pour vos réponses et bonne journée.
Configuration: Windows XP
Firefox 3.5

15 réponses

  1. Modérateur
    Salut,

    Avec la commande "stat" :
    [tmpfs]$ ls -lh
    total 0
    -rw-rw-r--  1 jp jp 0 jui 15 10:19 fichier
    
    [tmpfs]$ stat -c "%A %a" fichier
    -rw-rw-r-- 664
    
    [tmpfs]$ 
    ;-))
    0
    1. Cette commande ne fonctionne pas : stat

      Quel script de commande utilise tu (bash, ksh ...) ?

      Merci =D
      0
      1. Modérateur
        J'ai un shell bash, mais je pense que c'est plus un problème de système ;-\

        Sur quel système es-tu ?
        0
        1. comment puis-je savoir cela de manière exacte ?

          Existe il une commande ?

          Merci pour ta disponibilité.
          0
          1. Modérateur
            Essaie :
            cat /etc/{version,issue,release}
            dmesg | head -1
            0
            1. Solaris 8 2/04 s28s_hw4wos_05a SPARC
              Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
              Assembled 08 January 2004

              J'ai trouvé cela dans /etc/release
              0
              1. Modérateur
                Que te renvoie la commande :
                whereis stat
                ???
                0
                1. ~>whereis stat
                  ksh: whereis: not found

                  ~>stat
                  ksh: stat: not found

                  Désolé.
                  0
                  1. Modérateur
                    Regarde dans "/usr/local/bin/" si elle n'y est pas ...
                    0
                    1. Contributeur
                      hello
                      la commande stat n'existe pas sur Solaris, utiliser perl
                      $ ls -ln aa cla
                      -rwxr--r-- 1 1000 1000 228 2009-05-25 13:22 aa
                      -rwxr-xr-x 1 1000 1000 27 2009-07-02 12:09 cla
                      $ perl -e ' printf "%o\n" ,(stat($ARGV[0]))[2] & 07777' aa
                      744
                      $ perl -e ' printf "%o\n" ,(stat($ARGV[0]))[2] & 07777' cla
                      755
                      0
                      1. voici le resultat d'un ls :

                        addr2name.awk gzexe sparcv7
                        c++ gzip sparcv9
                        captoinfo hostname sudo
                        cc iconv tack
                        clear infocmp tar
                        cnvhtml.awk infotocap tic
                        coraenv jar tip
                        cpp jcf-dump toe
                        dbhome jv-convert top
                        etatgclcvs.awk jv-scan tput
                        etatgclcvs.sh oraenv tset
                        etatgclcvs.tar perl zcat
                        g++ reset zcmp
                        g77 rmic zdiff
                        gcc rmiregistry zegrep
                        gccbug sparc-sun-solaris2.8-c++ zfgrep
                        gcj sparc-sun-solaris2.8-g++ zforce
                        gcjh sparc-sun-solaris2.8-gcc zgrep
                        gcov sparc-sun-solaris2.8-gcc-3.4.0 zless
                        gij sparc-sun-solaris2.8-gcc-3.4.6 zmore
                        grepjar sparc-sun-solaris2.8-gcj znew
                        gunzip sparc-sun-solaris2.8-gcjh
                        0
                        1. perl -e ' printf "%o\n" ,(stat($ARGV[0]))[2] & 07777' RightsMaker.sh

                          Fonctionne a merveille.

                          -rwxrwxr-x est convertie en 775

                          Merci à vous 2 pour l'utilisation de stat.

                          Bonne continuation =D
                          0
                          1. Dans le même genre, je cherche comment retrouver le possesseur d'une ressource (fichier ou dossier)

                            j'ai fait un ls -rtl d'un dossier, avec un cut -d " " -f5 j'ai retrouvé la position mais c'est pas super
                            car des fois avec le ls des espaces sont ajoutés et ca fait planter la commande.

                            SI vous pouviez m'aider encore un petit peu.

                            Encore merci
                            0
                            1. Contributeur
                              le nombre d'espaces peut varier en fonction de la taille, longueur des noms, etc, essayer
                              ls -rtl | awk '{print $3}'
                              0