Cómo eliminar todos los archivos que se crearon hace unos minutos en Linux

13

Supongo que en la mayoría de los casos, al extraer un archivo tar, obtendremos un directorio con el mismo nombre que el archivo de archivo pero con un sufijo diferente. Pero en un caso desafortunado, como me encontré hoy, después de extraer un tarball, encuentro muchos archivos distribuidos en el directorio de trabajo, lo cual es una molestia.

Entonces, lo que quiero aprender de usted es que, ¿cómo puedo mover esos archivos recién creados? Sé que debería ser un enfoque elegante "encontrar más rm" allí, pero no sé exactamente cómo.

HaiYuan Zhang
fuente

Respuestas:

23

Me pregunto qué man finddiría. Entonces incluso puedes mostrar tus esfuerzos.

find . -type f -cmin -1
find . -type f -cmin -1 -delete
  • El -type fse utiliza para especificar que solo se seleccionen archivos regulares.
  • El estado -cmin -1del archivo se modificó por última vez en menos de un minuto (pasado).
  • La -deletebandera le dice a find que elimine todos sus archivos electrónicos en el universo conocido o algo así, así que tenga cuidado al usarlo.

Primero se recomienda hacer una prueba sin la -deletebandera.

Note -deletees una extensión no portátil.

Recomiendo leer la página de findmanual antes de usar esto, ya que cubre varios problemas y advertencias que pueden aplicarse en su situación.

mctylr
fuente
¡Agradable! -delete parece más fácil que -exec rm {} \;
PJ Brunet
+1 por tomarse el tiempo para explicar las opciones de opciones
Jad S
5
find . -mtime -60s -exec mv {} /dest/dir \;

Encuentra todos los archivos en el directorio actual (y subdirectorios) que se han modificado en los últimos 60 segundos y los mueve a / dest / dir.

skarface
fuente
3
Los archivos de archivos extraídos con cuidado pueden conservar la fecha de modificación original. Lo mejor es usar el tiempo de creación.
Cem Kalyoncu
@CemKalyoncu gran punto.
skarface
0

La forma más sencilla (siempre que no tenga una interfaz gráfica) será usar mc . Puede ordenar los archivos por fecha.

También puede eliminar los archivos que estaban en el tar desde la línea de comandos:

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

(-ztf) es para archivos tar.gz. Puede usar (-tf) para tars normales, o (-jtf) para archivos tar.bz2.

Si la lista de archivos es demasiado grande y el comando anterior se ahoga, puede usar xargs:

> tar -ztf mytar.tar.gz | xargs rm
Soleado
fuente
wow, mi mal - realmente no leí la pregunta - necesitas moverlos, no eliminarlos (por favor, arregla el título, es engañoso). Supongo que todavía puede eliminarlos, luego crear un nuevo directorio y descomprimirlo allí :). Después de todo, move = copy + delete.
Sunny