Pagina 1 di 1
find . -name *~ | rm Dove sbaglio?
Inviato: sab 1 dic 2012, 0:56
da darkstaring
Olaaaa a tutti.. stavo provando ad eliminare tutti i file di backup all'interno della directory dove mi trovavo con
Da qual chè ho capito il pipe serve a mandare l'output del primo comando su quello successivo..
Se è così, perchè non funziona???
il comando
find . -name *~ mi restituisce tutti i file che vorrei eliminare...
Devo aggiunge qualcosa del genere {$1} dopo rm?
E' una cosa importante che vorrei capire bene una volta per tutte
Mi potete spiegare?
Grazie Francesco
Re: find . -name *~ | rm Dove sbaglio?
Inviato: sab 1 dic 2012, 6:07
da Thraphyx
Puoi ottenere quello che vuoi in diversi modi, ad esempio
Se la tua intenzione era quella di redigire l'output da find a rm, non puoi farlo "direttamente", ma devi ricorrere a xargs
find e xargs sono comandi molto potenti, un buon passo per iniziare a conoscerli meglio è leggere il manuale
Re: find . -name *~ | rm Dove sbaglio?
Inviato: sab 1 dic 2012, 9:20
da darkstaring
Grazie Thraphyx.. queste chicche mi mancavano
Re: find . -name *~ | rm Dove sbaglio?
Inviato: sab 1 dic 2012, 11:29
da 414N
Aggiungo che è inutile ricorrere ad exec + rm quando si vogliono eliminare i risultati della ricerca: esiste il comando -delete che fa proprio questo:
Re: find . -name *~ | rm Dove sbaglio?
Inviato: sab 1 dic 2012, 13:43
da targzeta
Occhio ad usare il '-delete'. Ricorda che tutti i comandi per find sono dei filtri in AND (di default) che lui esegue uno dopo l'altro nell'ordine della command line. Cosa voglio dire con questo, che se per sbaglio metti prima il '-delete' e poi il '-iname' ti sei giocato tutti i file.
Esempio:
Codice: Seleziona tutto
cd /tmp
mkdir casa
cd casa
touch {a,b}{1..9}
ls
a1 a2 a3 a4 a5 a6 a7 a8 a9 b1 b2 b3 b4 b5 b6 b7 b8 b9
Ora, se io voglio eliminare tutti i file che iniziano con 'a', correttamente con find:
Codice: Seleziona tutto
find . -name 'a*' -delete
ls
b1 b2 b3 b4 b5 b6 b7 b8 b9
Ricreiamoli:
Codice: Seleziona tutto
touch a{1..9}
ls
a1 a2 a3 a4 a5 a6 a7 a8 a9 b1 b2 b3 b4 b5 b6 b7 b8 b9
se invece per errore metto prima il '-delete':
tutti i file eliminati.
Quindi, occhio a quelli che si fa,
Emanuele