[BASH]Elaborato BASH su file scrivibili/non scrivibili

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4433
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: [BASH]Elaborato BASH su file scrivibili/non scrivibili

Messaggio da UbuNuovo »

Federico Maietta [url=http://forum.ubuntu-it.org/viewtopic.php?p=4692476#p4692476][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Per correttezza posto il codice finale, a cui ho aggiunto parecchi controlli, sia sull'esistenza di file nella cartella, che sull'inserimento da parte dell'utente del nome del file. Ringrazio tutti.

Codice: Seleziona tutto

...
						#conto quanti sono quelli scrivibili e di proprietà dell'utente
						howManyWritable=$(find "$PWD" -maxdepth 1 -type f -perm /u=w -user $USER -exec basename {} \; | wc -l)

						#controllo che ci siano, in caso positivo li mostro
						if (( $howManyWritable > 0 )); then
							find "$PWD" -maxdepth 1 -type f -perm /u=w -user $USER -exec basename {} \; 
							...
Ho dato un'occhiata, generalmente non è una buona idea eseguire più volte la stessa ricerca con find, tu la esegui su una sola directory ed è veloce ma se dovessi fare una ricerca ricorsiva moltiplecheresti il tempo di esecuzione per ogni ricerca con find.
Conviene mettere i risultati della ricerca in una variabile e poi conteggi ed altre elaborazioni li fai sui risultati già ottenuti.
Devo andare...Ciaux
Salva l'Ucraina! 🇺🇦
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8242
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: [BASH]Elaborato BASH su file scrivibili/non scrivibili

Messaggio da crap0101 »

anche perchè è un controllo inutile, se ne trova li stampa già di suo e stop; al massimo si dovrebbe controllare se NON ne trova, e in quel caso dare un warning o chessò, tipo

Codice: Seleziona tutto

crap0101@orange:/tmp/FOO$ t=`tempfile `
crap0101@orange:/tmp/FOO$ find . -type f -name '*.c' | tee  >(wc -l > $t)
./sec2.c
./sec.c
./z.c
./s.c
crap0101@orange:/tmp/FOO$ cat $t
4
crap0101@orange:/tmp/FOO$ (( $(cat $t) == 0 )) && echo "messaggio di file non trovati"  # ad esempio
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4433
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: [BASH]Elaborato BASH su file scrivibili/non scrivibili

Messaggio da UbuNuovo »

Giusto Crap! Non sono andato nei particolari, consideriamo che sta iniziando con bash e non è malaccio! Anzi ha messo i controlli qundo non erano richiesti!
Per conto mio promette bene.
Salva l'Ucraina! 🇺🇦
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: Bing [Bot], neolight69 e 11 ospiti