Localizando arquivos com mais de x dias em um sistema com um busybox reduzido

9

Eu preciso encontrar e excluir arquivos com mais de 1 semana na unidade de desenvolvimento. Existem utilitários numéricos limitados disponíveis nesta unidade. O predicado -mtime find não está disponível. Como faço para verificar todos os arquivos com mais de x dias neste caso?

    
por Ravi 21.08.2018 / 11:27

2 respostas

11

-mtime é um predicado padrão de find (ao contrário de -delete ), mas parece que você tem uma versão simplificada de busybox , em que o recurso FEATURE_FIND_MTIME foi desativado no momento da criação. / p>

Se você puder reconstruir o busybox com ele ativado, você poderá:

find . -mtime +6 -type f -exec rm -f {} +

Ou se FEATURE_FIND_DELETE também estiver ativado:

find . -mtime +6 -type f -delete

Se não, outras opções poderiam ser usar find -newer (assumindo que FEATURE_FIND_NEWER está habilitado) em um arquivo que esteja configurado para ter um tempo de modificação de uma semana.

touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
  find . ! -type f -newer ../ref -exec rm -f {} +

Ou se -newer não estiver disponível, mas sh [ suportará -nt :

touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
  find . ! -type f -exec sh -c '
    for f do
      [ "$f" -nt ../ref ] || printf "%s
find . -mtime +6 -type f -exec rm -f {} +
" "$f" done' sh {} + | xargs -0 rm -f
    
por 21.08.2018 / 13:38
2

De man find :

-atime n

File was last accessed n*24 hours ago. When find figures out how many 24-hour periods ago the file was last accessed, any fractional part is ignored, so to match -atime +1, a file has to have been accessed at least two days ago.

-ctime n

File's status was last changed n*24 hours ago. See the comments for -atime to understand how rounding affects the interpretation of file status change times.

Dependendo dos casos de uso dos arquivos que você deseja excluir, estas são suas únicas outras opções para find . Por que mtime não está disponível? Qual sistema de arquivos você está usando? Você explorou alguma outra opção?

    
por 21.08.2018 / 11:35