Script per Loris :)

Postate qui se avete consigli per migliorare i pacchetti disponibili in questo sito o se avete problemi con installazione, funzionamento o altro.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il nome del pacchetto.
2) Specificare se discussione/suggerimento o richiesta d'aiuto.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
Loris
Admin
Admin
Messaggi: 7731
Iscritto il: lun 31 mar 2003, 0:00
Nome Cognome: Loris Vincenzi
Località: Gradisca D'Isonzo
Contatta:

Script per Loris :)

Messaggio da Loris »

Mi serve un piacere da voi guru degli script... ho bisogno di uno script che lanciato all'intero di una directory mi restituisca il numero dei permessi dei file contenuti, esempio ho diversi file 755, 644, 444, 555 a centinaia per intenderci e lo script deve solo mostrarmi il numero, anche se i file 755 sono tanti lui deve mostrarmi solo una volta il 755 così per tutti i file. Cosa mi proponete ?
:mille:
"Ho una testa piuttosto balzana e comunque non sono quello che credete" - Roger Keith Barrett

Avatar utente
ZeD
Linux 1.x
Linux 1.x
Messaggi: 112
Iscritto il: ven 28 ott 2005, 12:30
Slackware: 12.1
Località: Terra

Messaggio da ZeD »

ammetto di non aver capito... hai come presupposto che i file all'interno di una directory gia' abbiano tutti quanti gli stessi permessi?

vuoi semplicemente un riassunto (tipo: 10 file con permessi tipo 755, 40 da 644, ecc)

o li vuoi tutti, ordinati "per diritti"?

comunque, come punto di partenza, potrei suggerire find...

Codice: Seleziona tutto

find -type f -maxdepth 1 -perm 755
, come puoi intuire, trova tutti i file (non directory, né di altro tipo) nella directory (quella corrente e basta), coi permessi 755

al limite metti i permessi in un ciclo, o adatta il tutto alla bisogna

Codice: Seleziona tutto

for permesso in 755 644 444 555; do
  echo "file con permessi $permesso"
  find -type f -maxdepth 1 -perm $permesso
done

Avatar utente
MAT
Linux 4.x
Linux 4.x
Messaggi: 1242
Iscritto il: mer 9 mar 2005, 0:00
Nome Cognome: Matteo Magni
Kernel: 2.6.20
Desktop: Fluxbox
Distribuzione: Gentoo
Località: Vignola, Modena

Messaggio da MAT »

L'idea di ZeD è buona. Mandato a wc -l con una pipe, il suo comando va benissimo.

Codice: Seleziona tutto

find -type f -perm 755|wc -l
Poi eventualmente aggiungi un maxdepth nel caso in cui tu voglia esplorare directory solo fino ad un certo livello di innestamento.

Avatar utente
venerdi_12
Packager
Packager
Messaggi: 258
Iscritto il: sab 9 lug 2005, 0:00
Nome Cognome: Luciano Fattore
Kernel: 3.0
Desktop: kde-4.7.0
Distribuzione: archlinux
Località: Lusciano (Ce)

Messaggio da venerdi_12 »

A grandi linee una soluzione moolto grezza potrebbe essere creare tanti contatori quanti sono i permessi incontrati e poi

Codice: Seleziona tutto

P1=0 #permesso 444
P2=0 #permesso 445
......
Pn=0 #permesso n
comando_per_visualizzare permessi > PERM
permesso = `cat PERM`
for permesso in `Comando_per visualizzare_permessi`; do
if $permesso=444
 let P1=$P1+1
fi
if $permesso=445
 let P2=$P2+1
fi
...
if $permesso=n
let Pn=$Pn+1
done

echo P1 
echo P2
sul file PERM bisognerebbe invocare il giusto sed per ottenere delle righe con solo la stringa con le tre cifre.
Il problema princiapale è che io non conosco un programma che visualizzi i permessi in modalità ottale. Forse ls, ma con quali opzioni?

Moolto sporco come metodo.

Avatar utente
linus.bash
Linux 3.x
Linux 3.x
Messaggi: 976
Iscritto il: ven 10 feb 2006, 12:58
Località: Bologna
Contatta:

Messaggio da linus.bash »

Codice: Seleziona tutto

script log.permessi

Codice: Seleziona tutto

ls -l

Codice: Seleziona tutto

exit
Aprire il file permessi con un editor ed utilizzare i filtri per le ricerche (openoffice). :lol:

La prima cosa che ho pensato... ;)

Avatar utente
Loris
Admin
Admin
Messaggi: 7731
Iscritto il: lun 31 mar 2003, 0:00
Nome Cognome: Loris Vincenzi
Località: Gradisca D'Isonzo
Contatta:

Messaggio da Loris »

MAT ha scritto:L'idea di ZeD è buona. Mandato a wc -l con una pipe, il suo comando va benissimo.

Codice: Seleziona tutto

find -type f -perm 755|wc -l
Poi eventualmente aggiungi un maxdepth nel caso in cui tu voglia esplorare directory solo fino ad un certo livello di innestamento.
Si infatti adesso uso proprio una stinga simile, forse uso il metodo più comodo e non me ne rendo conto...
"Ho una testa piuttosto balzana e comunque non sono quello che credete" - Roger Keith Barrett

Rispondi