Anteprima
Vedrai una selezione di 1 pagina su 5
Bash - Sistemi Operativi - Elaborato Pag. 1
1 su 5
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

"File scrivibili dall'utente")

echo

controlla_presenza_files

find . -type f -user $USER -perm -u=w -printf "%h/%f^%f\n" > $TEMPFILE

2>/dev/null; numfiles=$(cat $TEMPFILE | grep -v -x $TEMPFILE | wc -l | cut -d ' ' -f1)

if [ $numfiles == 0 ]; then

echo "Nessun file e' scrivibile per l'utente!"

fine_del_case

fi

echo "Elenco dei file scrivibili dall'utente:"

echo

cat $TEMPFILE | cut -d '^' -f2 | grep -v -x $TEMPFILE | column

echo

echo "Inserisci il nome di uno di questi files:"

read filename

if [ -z "$filename" ]; then

echo

echo "Non hai inserito il nome di nessun file! Riprova..."

fine_del_case

fi

corrispondenze=$(cat $TEMPFILE | cut -d '^' -f2 | grep -v -x $TEMPFILE |

grep -x "$filename" | wc -l)

if [ $corrispondenze == 0 ]; then

echo

echo "Il nome file digitato non e' presente"

fine_del_case

elif [ $corrispondenze -gt 1 ]; then

echo

echo "Un file con questo nome è presente in cartelle diverse... scegline

uno:" echo

while [ -z "$percorso" ]

do select percorso in $(cat $TEMPFILE | cut -d '^' -f1 | grep "/

$filename"$) do break

done

done

fi

echo

echo "Ora cosa vuoi fare con il file?"

echo "Digita «editor» per modificare il file con un editor testuale"

echo "Digita «rimuovi» per rimuovere il permesso di scrittura dal file"

echo

read option

if [ -z "$option" ]; then

echo

echo "Non hai inserito alcuna opzione"

fine_del_case

fi

case "$option" in

"editor")

if [ -z "$percorso" ]; then

percorso=$(cat $TEMPFILE | cut -d '^' -f1 | grep "/

$filename"$) fi

if [ -z $EDITOR ]; then

nano "$percorso"

else $EDITOR "$percorso"

fi

unset percorso

break

;;

"rimuovi")

if [ -z "$percorso" ]; then

percorso=$(cat $TEMPFILE | cut -d '^' -f1 | grep "/

$filename"$) fi

chmod u-w "$percorso"

unset percorso

echo

echo "Permessi di scrittura rimossi con successo!"

;;

*) echo

echo "Non hai scelto nessuna delle opzioni!"

;;

esac

fine_del_case

;;

"File non scrivibili dall'utente")

echo

controlla_presenza_files

find . -type f -user $USER ! -perm -u=w -printf "%h/%f^%f\n" >

$TEMPFILE 2> /dev/null

numfiles=$(wc -l $TEMPFILE | cut -d ' ' -f1)

if [ $numfiles == 0 ]; then

echo "Non ci sono file dell'utente, non scrivibili!"

fine_del_case

fi

echo "Elenco dei files non scrivibili dall'utente:"

echo

cat $TEMPFILE | cut -d '^' -f2 | column

echo

echo "Inserisci il nome di uno di questi files:"

read filename

if [ -z "$filename" ]; then

echo "Non hai inserito il nome di nessun file! Riprova..."

fine_del_case

fi

corrispondenze=$(cat $TEMPFILE | cut -d '^' -f2 | grep -v -x $TEMPFILE |

grep -x "$filename" | wc -l)

if [ $corrispondenze == 0 ]; then

echo

echo "Il nome file digitato non e' presente"

fine_del_case

elif [ $corrispondenze -gt 1 ]; then

echo

echo "Un file con questo nome è presente in cartelle diverse... scegline

uno:" echo

while [ -z "$percorso" ]

do select percorso in $(cat $TEMPFILE | cut -d '^' -f1 | grep "/

$filename"$) do break

done

done

fi

echo

echo "Vuoi aggiungere il permesso di scrittura a questo file?"

echo "[si] [no]"

echo

read option

if [ -z "$option" ]; then

echo

echo "Non hai inserito alcuna opzione"

fine_del_case

fi

case "$option" in

"si")

Dettagli
Publisher
A.A. 2014-2015
5 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher siboXD di informazioni apprese con la frequenza delle lezioni di Sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bologna o del prof Salomoni Paola.