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.
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.
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.
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.
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.