Pagina 1 di 1

RISOLTO Eliminazione file e directory da elenco memorizzato

Inviato: dom 20 mar 2011, 23:57
da scartozzo
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.

Re: RISOLTO Eliminazione file e directory da elenco memorizz

Inviato: lun 21 mar 2011, 0:40
da scartozzo

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

Re: RISOLTO Eliminazione file e directory da elenco memorizz

Inviato: lun 21 mar 2011, 6:48
da matzu
scartozzo ha scritto:for arg in $(cat $pkgfs); do
'pkgfs' è uguale a 'lista'?

Re: RISOLTO Eliminazione file e directory da elenco memorizz

Inviato: mar 22 mar 2011, 0:47
da scartozzo
Si! Lista era per fare un esempio. pkgfs è la variabile che ho realmente utilizzato.

Grazie.

Re: RISOLTO Eliminazione file e directory da elenco memorizz

Inviato: mar 22 mar 2011, 0:50
da scartozzo
Ho dedicato un pò di tempo allo studio di uno script che tiene traccia dei pacchetti installati da sorgente (ovviamente alternativo al fakeinstall).

Re: RISOLTO Eliminazione file e directory da elenco memorizz

Inviato: mar 22 mar 2011, 9:44
da matzu
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.