Repository 32bit  Forum
Repository 64bit  Wiki

RISOLTO Eliminazione file e directory da elenco memorizzato

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
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.

RISOLTO Eliminazione file e directory da elenco memorizzato

Messaggioda scartozzo » dom mar 20, 2011 23:57

Lista è un elenco:

root@babilon:/mnt/lfs/prova# more lista
/mnt/lfs/prova/prova/directory/archivio1
/mnt/lfs/prova/prova/directory/archivio2
/mnt/lfs/prova/prova/directory/archivio3
/mnt/lfs/prova/prova/cartellina
/mnt/lfs/prova/prova/directory


Con il seguente script non succede nulla.
Insomma non vengono riconosciuti link file e directory, così la script esce senza risultato.

Codice: Seleziona tutto
remove=$(cat lista)
for arg in "$remove"; do
if [[ -h "$arg" ]]; then
  find $arg -type l -print | xargs /bin/rm -vf
fi
if [[ -f "$arg" ]]; then
  find $arg -type f -print | xargs /bin/rm -vf
fi
if [[ -d "$arg" ]]; then
  find $arg -type d -print | xargs /bin/rmdir -v
fi
done


Altrimenti, eliminando le condizioni ed i test, funziona con l'inconveniente dei messaggi di ritorno di file inesistenti perchè già eliminati.

RIngrazio anticipatamente per i suggerimenti.
Avatar utente
scartozzo
Packager
Packager
 
Messaggi: 249
Iscritto il: mar feb 08, 2005 0:00
Località: Torino
Nome Cognome: Flavio Gallucci
Kernel: 3.10.10
Desktop: fluxbox
Distribuzione: blfs-7.4

Re: RISOLTO Eliminazione file e directory da elenco memorizz

Messaggioda scartozzo » lun mar 21, 2011 0:40

Codice: Seleziona tutto
  for arg in $(cat $pkgfs); do
    if [[ -h "$arg" ]]; then
      find $arg -type l -print | xargs /bin/rm -vf
    elif [[ -f "$arg" ]]; then
      find $arg -type f -print | xargs /bin/rm -vf
    elif [[ -d "$arg" ]]; then
      find $arg -type d -print | xargs /bin/rmdir -v
    fi
  done


Ho risolto inserendo il comando cat all'interno del ciclo for.

E' più snello ma non capisco la differenza.

Grazie
Avatar utente
scartozzo
Packager
Packager
 
Messaggi: 249
Iscritto il: mar feb 08, 2005 0:00
Località: Torino
Nome Cognome: Flavio Gallucci
Kernel: 3.10.10
Desktop: fluxbox
Distribuzione: blfs-7.4

Re: RISOLTO Eliminazione file e directory da elenco memorizz

Messaggioda matzu » lun mar 21, 2011 6:48

scartozzo ha scritto:for arg in $(cat $pkgfs); do

'pkgfs' è uguale a 'lista'?
Avatar utente
matzu
Linux 2.4
Linux 2.4
 
Messaggi: 217
Iscritto il: dom set 20, 2009 1:26
Nome Cognome: Franco
Slackware: 64-13.37 13.1
Kernel: generic
Desktop: kde

Re: RISOLTO Eliminazione file e directory da elenco memorizz

Messaggioda scartozzo » mar mar 22, 2011 0:47

Si! Lista era per fare un esempio. pkgfs è la variabile che ho realmente utilizzato.

Grazie.
Avatar utente
scartozzo
Packager
Packager
 
Messaggi: 249
Iscritto il: mar feb 08, 2005 0:00
Località: Torino
Nome Cognome: Flavio Gallucci
Kernel: 3.10.10
Desktop: fluxbox
Distribuzione: blfs-7.4

Re: RISOLTO Eliminazione file e directory da elenco memorizz

Messaggioda scartozzo » mar mar 22, 2011 0:50

Ho dedicato un pò di tempo allo studio di uno script che tiene traccia dei pacchetti installati da sorgente (ovviamente alternativo al fakeinstall).
Avatar utente
scartozzo
Packager
Packager
 
Messaggi: 249
Iscritto il: mar feb 08, 2005 0:00
Località: Torino
Nome Cognome: Flavio Gallucci
Kernel: 3.10.10
Desktop: fluxbox
Distribuzione: blfs-7.4

Re: RISOLTO Eliminazione file e directory da elenco memorizz

Messaggioda matzu » mar mar 22, 2011 9:44

Se nel secondo hai usato elif, forse nel primo dovevi inserire i cicli if-fi dal secondo in poi dentro degli else. Una cosa circa così:
Codice: Seleziona tutto
if <condizione 1>
else
   if <condizione 2>
   fi
fi


(occhio che sono ignorante e vado a tentoni...)

Però per quel che m'interessa in particolare non ho capito come hai ottenuto la lista nella variabile.
Che output dà 'echo $pkgfs'?
Se 'more lista' dà l'output che hai scritto all'inizio, mi pare che dovrebbe essere che pkgfs=$(ls) o qualcosa di analogo, ma non torna.
Avatar utente
matzu
Linux 2.4
Linux 2.4
 
Messaggi: 217
Iscritto il: dom set 20, 2009 1:26
Nome Cognome: Franco
Slackware: 64-13.37 13.1
Kernel: generic
Desktop: kde


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti

cron