# Code, \[ls\] en octal

**URL:** <https://www.debian-fr.org/t/code-ls-en-octal/13006>\
**Category:** Trucs et Astuces\
**Created:** [Février 20, 2016, 5:22 UTC](https://www.debian-fr.org/t/code-ls-en-octal/13006 "2016-02-20T17:22:30Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![panthere](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/5daacb/32.png) [@panthere](https://www.debian-fr.org/u/panthere)\
**Post date:** [Février 20, 2016, 5:22 UTC](https://www.debian-fr.org/t/code-ls-en-octal/13006/1 "2016-02-20T17:22:31Z")

</div>

Bonjour,

Script dans le but d’avoir les droits en octal.  
Tout commentaire est bienvenu, surtout que les gens peuves l’utiliser.  
J’avais posté pour demander comment le faire.  
Mais la seule réponse était en Perl

Aux besoin les admin peuve déplacer le script ![:smt006](https://www.debian-fr.org/uploads/default/original/1X/924eb3db8bedad6a0d333b02031d3c6a9af9d9c5.gif)

```auto
#!/bin/sh
# l'indentation peut être modifiée par le forum!
# **************************************************************************
# Auteur Panthere noire Date de mise a jours 2008-08-01
# Site de l'auteur www.panthere-noire.com 
# Ce programme est un logiciel libre.
# Vous pouvez en redistribuer des copies selon les termes
# de la GNU [General Public License]
# <http://www.gnu.org/licenses/gpl.html>.
# Il n’y a AUCUNE GARANTIE dans la mesure autorisée par la loi.
# Dépandance du programme [ls], si une modification 
# est faite de celui-ci cela pourrait affecter le fonction. : ls 
# **************************************************************************

echo "ls Vertion 0.1"
# Groupe de variable non protégé, risque d'écrasement
# Pour éviter cela, il faudrait les exécuter dans un sous processus
# exemple : fonction (){(code, sous processus)}
URet="SUNull" 
GRet="SGNull" 
ARet="SGNull" 
ALLCalc="SCNull"
textutilisateur1=" Fonction utilisateur. \
Erreur caractère non reconnu ou combinaison non gérée."
textgroup1="Fonction goute. \
Erreur caractère non reconnu ou combinaison non gérée."
textautre1="Fonction autres. \
Erreur caractère non reconnu ou combinaison non gérée."

I=0
I=$(($I+1)) # on saute la premiere ligne

function utilisateur()
{
    URet="UNull"
    if ["$1" = "r"] && ["$2" = "-"] && ["$3" = "-"] ;then
        URet="00400"
    elif ["$1" = "-"] && ["$2" = "w"] && ["$3" = ""] ;then
        URet="00200"
    elif ["$1" = "-"] && ["$2" = "-"] && ["$3" = "x"] ;then
        URet="00100"
    elif ["$1" = "r"] && ["$2" = "-"] && ["$3" = "x"] ;then
        URet="00500"
    elif ["$1" = "r"] && ["$2" = "w"] && ["$3" = "-"] ;then
        URet="00600"
    elif ["$1" = "-"] && ["$2" = "w"] && ["$3" = "x"] ;then
        URet="00300"
    elif ["$1" = "r"] && ["$2" = "w"] && ["$3" = "x"] ;then
        URet="00700"
    elif ["$1" = "-"] && ["$2" = "-"] && ["$3" = "S"] ;then
        URet="04000"
    elif ["$1" = "-"] && ["$2" = "-"] && ["$3" = "s"] ;then
        URet="04100"
    elif ["$1" = "-"] && ["$2" = "w"] && ["$3" = "s"] ;then
        URet="04300"
    elif ["$1" = "r"] && ["$2" = "-"] && ["$3" = "S"] ;then
        URet="04400"
    elif ["$1" = "r"] && ["$2" = "-"] && ["$3" = "s"] ;then
        URet="04500"
    elif ["$1" = "-"] && ["$2" = "-"] && ["$3" = "-"] ;then
        URet="00000"
    else
        echo "$Textutilisateur" $1 $2 $3
    fi
}
function grouputilisateur()
{
    Gret="GNull"
    if ["$1" = "r"] && ["$2" = "-"] && ["$3" = "-"] ;then
        GRet="00040"
    elif ["$1" = "-"] && ["$2" = "w"] && ["$3" = ""] ;then
        GRet="00020"
    elif ["$1" = "-"] && ["$2" = "-"] && ["$3" = "x"] ;then
        GRet="00010"
    elif ["$1" = "r"] && ["$2" = "-"] && ["$3" = "x"] ;then
        GRet="00050"
    elif ["$1" = "-"] && ["$2" = "w"] && ["$3" = "x"] ;then
        GRet="00030"
    elif ["$1" = "r"] && ["$2" = "w"] && ["$3" = "x"] ;then
        GRet="00070"
    elif ["$1" = "-"] && ["$2" = "-"] && ["$3" = "S"] ;then
        GRet="02000"
    elif ["$1" = "-"] && ["$2" = "-"] && ["$3" = "s"] ;then
        GRet="02010"
    elif ["$1" = "-"] && ["$2" = "w"] && ["$3" = "s"] ;then
        GRet="02030"
    elif ["$1" = "r"] && ["$2" = "-"] && ["$3" = "S"] ;then
        GRet="02040"
    elif ["$1" = "r"] && ["$2" = "-"] && ["$3" = "s"] ;then
        GRet="02050"
    elif ["$1" = "-"] && ["$2" = "-"] && ["$3" = "-"] ;then
        GRet="00000"
    else
        echo "$textgroup1. $1 $2 $3"
    fi
}
function autreutilisateur()
{
    ARet="ANull"
    if ["$1" = "r"] && ["$2" = "-"] && ["$3" = "-"] ;then
        ARet="00004"
    elif ["$1" = "-"] && ["$2" = "w"] && ["$3" = ""] ;then
        ARet="00002"
    elif ["$1" = "-"] && ["$2" = "-"] && ["$3" = "x"] ;then
        ARet="00001"
    elif ["$1" = "r"] && ["$2" = "-"] && ["$3" = "x"] ;then
        ARet="00005"
    elif ["$1" = "-"] && ["$2" = "w"] && ["$3" = "x"] ;then
        ARet="00003"
    elif ["$1" = "r"] && ["$2" = "w"] && ["$3" = "x"] ;then
        ARet="00007"
    elif ["$1" = "-"] && ["$2" = "-"] && ["$3" = "T"] ;then
        ARet="01000"
    elif ["$1" = "-"] && ["$2" = "-"] && ["$3" = "t"] ;then
        ARet="01001"
    elif ["$1" = "-"] && ["$2" = "w"] && ["$3" = "t"] ;then
        ARet="01003"
    elif ["$1" = "r"] && ["$2" = "-"] && ["$3" = "T"] ;then
        ARet="01004"
    elif ["$1" = "r"] && ["$2" = "-"] && ["$3" = "t"] ;then
        ARet="01005"
    elif ["$1" = "-"] && ["$2" = "-"] && ["$3" = "-"] ;then
        ARet="00000"
    else
        echo "$textautre1 $1 $2 $3"
    fi
}
function listing_one_car()
{
    V1=`echo $* |cut -d":" -f1`
    V2=`echo $* |cut -d":" -f2`
    V3=`echo $* |cut -d":" -f3`
    V4=`echo $* |cut -d":" -f4`
    V5=`echo $* |cut -d":" -f5`
    V6=`echo $* |cut -d":" -f6`
    V7=`echo $* |cut -d":" -f7`
    V8=`echo $* |cut -d":" -f8`
    V9=`echo $* |cut -d":" -f9`
    V10=`echo $* |cut -d":" -f10`
    utilisateur "$V2" "$V3" "$V4"
    grouputilisateur "$V5" "$V6" "$V7"
    autreutilisateur "$V8" "$V9" "$V10"
    ALLCalc=`echo "$URet + $GRet + $ARet" |bc`

}
function main ()
{
ls -Al |while read ligne ;do
I=$(($I+1))
    if ["2" != "$I"] ;then
        R1=`echo $ligne |cut -d" " -f1|cut -c1`
        U1=`echo $ligne |cut -d" " -f1|cut -c2`
        U2=`echo $ligne |cut -d" " -f1|cut -c3`
        U3=`echo $ligne |cut -d" " -f1|cut -c4`
        G1=`echo $ligne |cut -d" " -f1|cut -c5`
        G2=`echo $ligne |cut -d" " -f1|cut -c6`
        G3=`echo $ligne |cut -d" " -f1|cut -c7`
        A1=`echo $ligne |cut -d" " -f1|cut -c8`
        A2=`echo $ligne |cut -d" " -f1|cut -c9`
        A3=`echo $ligne |cut -d" " -f1|cut -c10`
        listing_one_car "$R1:$U1:$U2:$U3:$G1:$G2:$G3:$A1:$A2:$A3"
       echo "$ALLCalc" "$ligne"
    fi
done
}
main
exit 0
```

placer le dans le répertoire /user/bin/le\_nom\_que\_vous\_voulez  
et exécuter le via son nom comme d’habitude 🙂

Note: c’est lent, c’ est normal c est pas du #C

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 5:22 UTC](https://www.debian-fr.org/t/code-ls-en-octal/13006/2 "2016-02-20T17:22:31Z")

</div>

Hum, il suffit de faire

```auto

```

Ainsi un script permettant de sauvegarder les droits est

```auto
#!/bin/bash
cd /
find . -printf "chmod %m %p\n" > /tmp/sauvegarde_droit
```

La restauration des droits se fait par

# sh /tmp/sauvegarde\_droit

---

<div class="post-metadata">

**Author:** ![thialme](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/50afbb/32.png) [@thialme](https://www.debian-fr.org/u/thialme)\
**Post date:** [Février 20, 2016, 5:22 UTC](https://www.debian-fr.org/t/code-ls-en-octal/13006/3 "2016-02-20T17:22:34Z")

</div>

> [@](#):
>
> Script dans le but d’avoir les droits en octal.  
> Tout commentaire est bienvenu, surtout que les gens peuves l’utiliser.  
> J’avais posté pour demander comment le faire.  
> Mais la seule réponse était en Perl

Ah bon, j’ai écrit pour rien : [viewtopic.php?f=3&t=13328](http://forum.debian-fr.org/viewtopic.php?f=3&t=13328)

Donc j’ai lu la man page pour toi :  
stat --printf=%a mon\_fichier;

---

<div class="post-metadata">

**Author:** ![panthere](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/5daacb/32.png) [@panthere](https://www.debian-fr.org/u/panthere)\
**Post date:** [Février 20, 2016, 5:22 UTC](https://www.debian-fr.org/t/code-ls-en-octal/13006/4 "2016-02-20T17:22:34Z")

</div>

[quote=“thialme”][quote=“panthere”]  
Script dans le but d’avoir les droits en octal.  
Tout commentaire est bienvenu, surtout que les gens peuves l’utiliser.  
J’avais posté pour demander comment le faire.  
Mais la seule réponse était en Perl  
[/quote]  
Ah bon, j’ai écrit pour rien : [viewtopic.php?f=3&t=13328](http://forum.debian-fr.org/viewtopic.php?f=3&t=13328)

Donc j’ai lu la man page pour toi :  
stat --printf=%a mon\_fichier;[/quote]

sorry marche pas chez moi, du moin pas pour lister les fichiers 😒  
Merci pour la réponse, je me suis un peux louper. certainement une fausse manipe avec iceweasell et son mots de passe qui déconne ![:smt011](https://www.debian-fr.org/uploads/default/original/1X/e1c828725767155d02a113f6ea98d6b80ffb50cd.gif)

---

<div class="post-metadata">

**Author:** ![panthere](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/5daacb/32.png) [@panthere](https://www.debian-fr.org/u/panthere)\
**Post date:** [Février 20, 2016, 5:22 UTC](https://www.debian-fr.org/t/code-ls-en-octal/13006/5 "2016-02-20T17:22:34Z")

</div>

[quote=“fran.b”]Hum, il suffit de faire

```auto

```

Ainsi un script permettant de sauvegarder les droits est

```auto
#!/bin/bash
cd /
find . -printf "chmod %m %p\n" > /tmp/sauvegarde_droit
```

La restauration des droits se fait par

# sh /tmp/sauvegarde\_droit[/quote]

Question comment on limite aux répertoire, donc sans lister les sous répertoires ?  
Sinon sa marche bien 🙂  
Je vais l’ajouter aux topic sauvegarde 🙂

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 5:22 UTC](https://www.debian-fr.org/t/code-ls-en-octal/13006/6 "2016-02-20T17:22:34Z")

</div>

`stat --printf="%n %a\n" *` aprés, tu peux affiner les infos que tu affiches (man stat)

---

<div class="post-metadata">

**Author:** ![thialme](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/50afbb/32.png) [@thialme](https://www.debian-fr.org/u/thialme)\
**Post date:** [Février 20, 2016, 5:22 UTC](https://www.debian-fr.org/t/code-ls-en-octal/13006/7 "2016-02-20T17:22:35Z")

</div>

> [@](#):
>
> sorry marche pas chez moi, du moin pas pour lister les fichiers 😒

Tu pousses le bouchon un peu loin non 😈 C’est pas une modification de la sorte qui va te faire mal au crâne.

---

<div class="post-metadata">

**Author:** ![panthere](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/5daacb/32.png) [@panthere](https://www.debian-fr.org/u/panthere)\
**Post date:** [Février 20, 2016, 5:22 UTC](https://www.debian-fr.org/t/code-ls-en-octal/13006/8 "2016-02-20T17:22:35Z")

</div>

[quote=“thialme”][quote=“panthere”]  
sorry marche pas chez moi, du moin pas pour lister les fichiers 😒  
[/quote]

Tu pousses le bouchon un peu loin non 😈 C’est pas une modification de la sorte qui va te faire mal au crâne.[/quote]

Un peux loin ? faudrai déjà qu’il soie parti… 😆  
Bah je doit dire que j’ai pas vraiment cherche, mai la vrai question c’est pourquoi n’as-tu pas donner la bonne réponse d’office, sa mange pas de pain que je sache ![8)](https://www.debian-fr.org/uploads/default/original/1X/ae031e9834d19166598edd060b063d44f1829139.gif "Cool")

Ceci dit laisse Béton 😲

---

<div class="post-metadata">

**Author:** ![panthere](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/5daacb/32.png) [@panthere](https://www.debian-fr.org/u/panthere)\
**Post date:** [Février 20, 2016, 5:22 UTC](https://www.debian-fr.org/t/code-ls-en-octal/13006/9 "2016-02-20T17:22:35Z")

</div>

> [@](#):
>
> `stat --printf="%n %a\n" *` aprés, tu peux affiner les infos que tu affiches (man stat)

nikel ![:smt023](https://www.debian-fr.org/uploads/default/original/1X/3c587556c0cc11389317c03a60788d77ceebd307.gif) Merci ![](http://www.panthere-noire.com/image/smiley/109.gif)

---

<div class="post-metadata">

**Author:** ![thialme](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/50afbb/32.png) [@thialme](https://www.debian-fr.org/u/thialme)\
**Post date:** [Février 20, 2016, 5:22 UTC](https://www.debian-fr.org/t/code-ls-en-octal/13006/10 "2016-02-20T17:22:53Z")

</div>

[quote=“panthere”]  
Un peux loin ? faudrai déjà qu’il soie parti… 😆  
Bah je doit dire que j’ai pas vraiment cherche, mai la vrai question c’est pourquoi n’as-tu pas donner la bonne réponse d’office, sa mange pas de pain que je sache ![8)](https://www.debian-fr.org/uploads/default/original/1X/ae031e9834d19166598edd060b063d44f1829139.gif "Cool")

Ceci dit laisse Béton 😲[/quote]  
J’aime bien cette technique, ce serait presque de ma faute et en plus je n’aurais même pas le droit de répondre 😮

Je ne suis pas la pour te tenir la main et te donner toutes les réponses. Si celà m’avait intéressé un peu plus j’aurais été jusqu’au bout ; je t’ai déjà donné un bon élément de réponse pour remplacer des dizaines de lignes. Ce n’est pas moi qui pose les questions sur le forum.

---

<div class="post-metadata">

**Author:** ![panthere](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/5daacb/32.png) [@panthere](https://www.debian-fr.org/u/panthere)\
**Post date:** [Février 20, 2016, 5:22 UTC](https://www.debian-fr.org/t/code-ls-en-octal/13006/11 "2016-02-20T17:22:55Z")

</div>

Hum il faut pas le prendre de cette manière. ![:smt056](https://www.debian-fr.org/uploads/default/original/1X/eac7f4bc8284679100d98416f12dddb4848c2a96.gif) Cependant je te remercie pour ta réponse,

L’intention (le bouchon ? :smt003 le poisson ? ![:smt077](https://www.debian-fr.org/uploads/default/original/1X/40116448d7b8f34c70ad1455598249caf75f0933.gif) ) était là ![:smt006](https://www.debian-fr.org/uploads/default/original/1X/924eb3db8bedad6a0d333b02031d3c6a9af9d9c5.gif) . Oui j’aime plaisanter, j’ai le droit que je sache, évidement si tu prends tout de travers.  
M’enfin c’est pas compliquer quoi keep cool
