Estou procurando uma solução para mover arquivos que são um ano mais antigos a partir de hoje. Minha partição de log está ficando cheia, mas não consigo removê-los. Eles são necessários por um longo tempo. De qualquer forma, uma solução que eu criei é:
find /sourcedirectory -mtime 365 -exec mv "{}" /destination/directory/ \;
Isso funcionaria? Perguntando por causa do " -mtime 365 ", isso moveria os arquivos que são anos mais antigos a partir de hoje para um novo local?
Obrigado!
mtime
é o tempo de modificação (que soa como o que você provavelmente deseja - na maioria das vezes). Se esses logs forem lidos / consultados com frequência, você poderá usar-atime
(última hora de acesso).exec
declaração. Veja a página de manual parafind
.Cuidado ao usar as soluções acima, usei-as e acabei movendo todos os arquivos em todas as subpastas !!!!
Este comando move todos os arquivos no diretório / source e todas as subpastas no diretório de origem:
Em vez disso, use a opção -maxdepth 1 apenas para arquivos no diretório / sourced
fonte
-type f
. Em vez disso, você quis dizer com isso que as subpastas são movidas, mas o conteúdo delas permanece nas subpastas, em vez de sair delas ou ...?Você pode usar este comando e especificar que você encontrará apenas arquivos, não diretório, e o arquivo tenha mais de um ano
fonte
rm
? Seu comando exclui os arquivos de log e possivelmente o diretório de destino.Você pode usar o comando abaixo com atime se os arquivos forem acessados frequentemente
fonte
Correto removeria a barra final final de
/sourcedirectory/
fonte
find: missing argument
erro, mas concordo que a eliminação da barra final/sourcedirectory
está correta.