Come rimuovo tutti i file che corrispondono a un modello?


76

Quando torno su Mercurial, lascia diversi .origfile. Vorrei poter eseguire un comando per rimuoverli tutti.

Ho trovato alcune fonti che dicono di funzionare:

rm **/*.orig

Ma questo mi dà il messaggio:

rm: impossibile rimuovere `* / .orig ': nessun file o directory

Ho anche provato:

  • rm -rv *.orig

  • rm -R *\.orig


Risposte:


149

Usa il findcomando (con cura!)

find . -name '*.orig' #-delete

Ho commentato il comando di eliminazione, ma una volta che sei soddisfatto di ciò che corrisponde, basta rimuovere il #dalla riga e dovrebbe eliminare tutti quei file.


Funziona in modo ricorsivo?
Frank Barcenas,

2
@FrankBarcenas Sì - find fa tutto in modo ricorsivo. Se vuoi limitare il modo in cui funziona, puoi giocare con gli argomenti -maxdeptho -mindepth.
Oli

6
Sicuramente lasciare il -deletealla fine delle bandiere. find . -delete -name '*.orig'ignorerà il filtro e bloccherà l'intera directory.
Michael,

1
@Michael, si. Ho già risolto il problema congit clean -fdx
kyb il

1
@kamal Probabilmente userei ancora find ma con i suoi -regexo -iregexpredicati. L'analisi dei nomi dei file (quando li esegui il piping in giro) può essere difficile da eseguire in sicurezza a volte.
Oli

6

"find" ha alcune tecniche molto avanzate per la ricerca in tutte o in directory e file rm attuali.

find ./ -name ".orig" -exec rm -rf {} \;

3
Qual è il vantaggio rispetto all'utilizzo -delete?
Muru,

@muru Suppongo che riceveresti un prompt per ogni file se rimuovi -rf.
Peter,

@Peter non necessariamente. Anche allora, quindi? La risposta usa -rfe findha -ok.
Muru,

@muru sembra -delete non rimuove le cartelle
Andrii Karaivanskyi

@AndriiKaraivanskyi a meno che la cancellazione non sia riuscita, lo fa.
muru,

1

Ho rimosso tutti i file che iniziano con .nfs000000000 in questo modo

rm .nfs000000000*
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.