Come rimuovere tutti i file creati n minuti fa in Linux


13

Immagino che nella maggior parte dei casi, quando si estrae un archivio tar, otterremo una directory con lo stesso nome del file di archivio ma un suffisso diverso. Ma in un caso sfortunato, come ho incontrato oggi, dopo aver estratto un tarball, trovo molti file sparsi nella directory di lavoro, il che è un fastidio.

Quindi quello che voglio imparare da te è questo: come posso spostare quei file appena creati? So che dovrebbe esserci un approccio "trova più rm", ma non so esattamente come.

Risposte:


23

Mi chiedo cosa man finddirei. Quindi puoi anche mostrare i tuoi sforzi.

find . -type f -cmin -1
find . -type f -cmin -1 -delete
  • Il -type fviene utilizzato per specificare solo file normali vengono selezionati.
  • Lo stato -cmin -1del file è stato modificato l'ultima volta in meno dell'ultimo (uno) minuto.
  • La -deletebandiera dice che trova tutti i tuoi file elettronici nell'universo conosciuto o qualcosa del genere, quindi fai attenzione quando lo usi.

Prima di fare un test eseguito senza la -deletebandiera è fortemente raccomandato.

Nota -deleteè un'estensione non portatile.

Ti consiglio di leggere la findmanpage prima di usarlo, perché copre vari aspetti e avvertenze che potrebbero applicarsi alla tua situazione.


Bello! -delete sembra più facile di -exec rm {} \;
PJ Brunet,

+1 per il tempo dedicato a spiegare le opzioni scelte
Jad S

5
find . -mtime -60s -exec mv {} /dest/dir \;

Trova tutti i file nella directory corrente (e nelle directory secondarie) che è stata modificata negli ultimi 60 secondi e li sposta in / dest / dir.


3
I file di archivi estratti con cura possono conservare la data di modifica originale. Meglio usare i tempi di creazione.
Cem Kalyoncu,

@CemKalyoncu ottimo punto.
skarface,

0

Il modo più semplice (a condizione che tu non abbia un'interfaccia grafica) sarà usare mc . Può ordinare i file per data.

Puoi anche eliminare i file che erano nel tar dalla riga di comando:

> rm $( tar -ztf mytar.tar.gz )

(-ztf) è per i file tar.gz. È possibile utilizzare (-tf) per tar normali o (-jtf) per i file tar.bz2.

Se l'elenco dei file è troppo grande e il comando sopra riportato soffoca, puoi usare xargs:

> tar -ztf mytar.tar.gz | xargs rm

caspita - non ho letto davvero la domanda - devi spostarli, non cancellarli (per favore, aggiusta il titolo, è fuorviante). Immagino che tu possa ancora eliminarli, quindi creare una nuova directory e decomprimere lì :). Dopotutto, sposta = copia + cancella.
Sunny
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.