Como remover todos os arquivos criados n minutos atrás no linux

13

Eu acho que na maioria dos casos, ao extrair um arquivo tar, obteremos um diretório com o mesmo nome que o arquivo, mas com sufixo diferente. Mas, em alguns casos infelizes, como conheci hoje, depois de extrair um tarball, encontro muitos arquivos espalhados no diretório de trabalho, o que é um incômodo.

Então, o que quero aprender com você é o seguinte: como posso mover esses arquivos recém-criados? Eu sei que deve ser uma abordagem sofisticada "encontre mais rm" lá, mas não sei exatamente como.

HaiYuan Zhang
fonte

Respostas:

23

Eu me pergunto o man findque diria. Então você pode até mostrar seus esforços.

find . -type f -cmin -1
find . -type f -cmin -1 -delete
  • O -type fé usado para especificar apenas arquivos regulares são selecionados.
  • O -cmin -1status do arquivo foi alterado pela última vez em menos de um (um) minuto.
  • A -deletesinalização indica para localizar todos os seus arquivos eletrônicos no universo conhecido ou algo assim, portanto, tenha cuidado ao usá-lo.

Primeiro, faça um teste sem o -deletesinalizador é altamente recomendável.

Nota -deleteé uma extensão não portátil.

Recomendo a leitura da página de findmanual antes de usá-la, pois abrange várias dicas e avisos que podem ser aplicados à sua situação.

mctylr
fonte
Agradável! -delete parece mais fácil que -exec rm {} \;
PJ Brunet
+1 para tomar o tempo para explicar as escolhas de opção
Jad S
5
find . -mtime -60s -exec mv {} /dest/dir \;

Localiza todos os arquivos no diretório atual (e subdiretórios) que foram modificados nos últimos 60 segundos e os move para / dest / dir.

skarface
fonte
3
Os arquivos extraídos cuidadosos podem preservar a data original da modificação. Melhor usar o tempo de criação.
Cem Kalyoncu
@CemKalyoncu great point.
Skarface
0

A maneira mais fácil (desde que você não tenha interface gráfica) será usar o mc . Pode classificar arquivos por data.

Você também pode excluir os arquivos que estavam no tar da linha de comando:

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

(-ztf) é para arquivos tar.gz. Você pode usar (-tf) para alcatrões normais ou (-jtf) para arquivos tar.bz2.

Se a lista dos arquivos for muito grande e o comando acima bloquear, você poderá usar xargs:

> tar -ztf mytar.tar.gz | xargs rm
Ensolarado
fonte
uau, meu mal - eu não li a pergunta realmente - você precisa movê-los, não excluir (pls, corrija o título, é enganoso). Eu acho que você ainda pode excluí-los, criar um novo diretório e descompactar lá :). Afinal, mova = copiar + excluir.
03