[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] chmod reverso
From: |
Fabiano Caixeta Duarte |
Subject: |
Re: [shell-script] chmod reverso |
Date: |
Sat, 22 Nov 2008 10:50:41 -0200 |
2008/11/22 Ivan lopes <address@hidden>
> ** espero que essa brincadeira seja util para os iniciantes em shel
> e quem tiver um legal, pode mandar tb!
> ** eu acho que em awk dah para fazer isso em uma linha ...mas eu nao sei
> fazer!
>
>
>
> **
> eu sou preguicoso e nao gosto de somar! por isso ... esse pequeno script
>
> exemplo de saida:
> $ ./cchmod.sh *.mpeg *.c *.sh
> -w-r--r-- : 644 : windows_plugin_firefox_test_03.mpeg
> -rw-r--r-- : 644 : magnitude.c
> -rw-r--r-- : 644 : mouse.c
> -rw-r--r-- : 644 : plasma.c
> -rwxr-xr-x : 755 : a.sh
> -rwxr-xr-x : 755 : calculadora.sh
> -rwxr-xr-x : 755 : cchmod.sh
> -rw-r--r-- : 644 : changed.sh
> -rwxr-xr-x : 755 : funcoeszz-8.9.sh
>
> cat cchmod.sh
> #! /bin/bash
>
> for f in $*; do
>
> W=`ls -l $f| sed 's/ .*//'`
> echo -n $W
> echo -n " : "
>
> c=1
> for ((i=1;i<${#W};i++));do
>
> case ${W:$i:1} in
> -) let s=s+0;;
> r) let s=s+4;;
> w) let s=s+2;;
> x) let s=s+1;;
> esac
>
> if test $c -eq 3; then
> echo -n $s
> c=1; s=0
> else
> let c++
> fi
> done
>
> echo " : $f"
> done
> <address@hidden>
Ivan,
Realmente seu script ficou interessante e didático.
Eu sugiro uma mundança no nome do script para melhorar a semântica. Afinal,
o chmod (change mode) está relacionado com mudança das permissões. Seu
script poderia se chamar lsperms, pois lista os arquivos e mostra, de duas
formas, as permissões.
Se me permite, fiz uma modificação que encurta um pouco o script, usando a
idéia de três blocos de permissão. Veja aí:
#! /bin/bash
for f in $*; do
W=$(ls -l $f | sed 's/ .*//')
echo -n "$W : "
W=${W:1}
for ((i=0;i<3;i++,s=0)); do
for ((j=0; j<3; j++)); do
case ${W:$((3*i+j)):1} in
-) let s=s+0;;
r) let s=s+4;;
w) let s=s+2;;
x) let s=s+1;;
esac
done
echo -n $s
done
echo " : $f"
done
--
Fabiano Caixeta Duarte
Especialista em Redes de Computadores
Linux User #195299
Ribeirão Preto - SP
[As partes desta mensagem que não continham texto foram removidas]
- chmod reverso, Ivan lopes, 2008/11/22
- Re: [shell-script] chmod reverso,
Fabiano Caixeta Duarte <=