Obtenha a saída find para excluir arquivos mais tarde

Obtenha a saída find para excluir arquivos mais tarde

Eu gostaria de obter os resultados deste comando:

find . -type f -size +200M -exec ls -lh {} \;

armazene o conteúdo em uma variável de algum formato e exclua os arquivos encontrados.

Como posso fazer isso?

Responder1

Você não precisa armazenar os resultados da findvariável in apenas para poder remover os arquivos (a menos que você tenha alguns requisitos específicos que não mencionou), pois findfornece um parâmetro especial -deleteque faria isso por você:

find . -type f -size +200M -print -delete

Comoanalisar a saída do lscomando não é aconselhável.

Se você realmente deseja analisar os arquivos retornados por find, você precisa fazer algo como:

find . -type f -size +200M -print0 | xargs -0 rm -v

Como você não pode manter variáveis ​​de shell com caracteres nulos e não deseja quebrar o script em espaços (o que pode causarinsetos gigantes), a solução alternativa poderia ser armazenar a lista no arquivo temporário ou serializar os dados (por exemplo, base64).

informação relacionada