shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] chmod reverso


From: Humberto Cruz
Subject: Re: [shell-script] chmod reverso
Date: Mon, 24 Nov 2008 08:55:23 -0200

Jeitinho mais simples:

stat -c %A" : "%a" : "%n *.jpg

[]s
Humberto

2008/11/22 Fabiano Caixeta Duarte <address@hidden>

>   2008/11/22 Ivan lopes <address@hidden<lopesivan.del%40gmail.com>
> >
>
>
> > ** 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<shell-script-unsubscribe%40yahoogrupos.com.br>
> >
>
> 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]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]