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 sempre la versione di Slackware usata e la versione del Kernel. Questi dati aiutano le persone che possono rispondere.
2) Specificare sempre il tipo di shell (bash, sh, csh, etc...)
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 dell'ultima regola 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 » lun mar 21, 2011 0: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: 245
Iscritto il: mar feb 08, 2005 1:00
Località: Torino
Nome Cognome: Flavio Gallucci
Slackware: 13.37
Kernel: 3.1
Desktop: xfce

Re: RISOLTO Eliminazione file e directory da elenco memorizz

Messaggioda scartozzo » lun mar 21, 2011 1: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: 245
Iscritto il: mar feb 08, 2005 1:00
Località: Torino
Nome Cognome: Flavio Gallucci
Slackware: 13.37
Kernel: 3.1
Desktop: xfce

Re: RISOLTO Eliminazione file e directory da elenco memorizz

Messaggioda matzu » lun mar 21, 2011 7:48

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

'pkgfs' è uguale a 'lista'?
Avatar utente
matzu
Linux 2.4
Linux 2.4
 
Messaggi: 213
Iscritto il: dom set 20, 2009 2: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 1:47

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

Grazie.
Avatar utente
scartozzo
Packager
Packager
 
Messaggi: 245
Iscritto il: mar feb 08, 2005 1:00
Località: Torino
Nome Cognome: Flavio Gallucci
Slackware: 13.37
Kernel: 3.1
Desktop: xfce

Re: RISOLTO Eliminazione file e directory da elenco memorizz

Messaggioda scartozzo » mar mar 22, 2011 1: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: 245
Iscritto il: mar feb 08, 2005 1:00
Località: Torino
Nome Cognome: Flavio Gallucci
Slackware: 13.37
Kernel: 3.1
Desktop: xfce

Re: RISOLTO Eliminazione file e directory da elenco memorizz

Messaggioda matzu » mar mar 22, 2011 10: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: 213
Iscritto il: dom set 20, 2009 2: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 1 ospite