
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 find
variável in apenas para poder remover os arquivos (a menos que você tenha alguns requisitos específicos que não mencionou), pois find
fornece um parâmetro especial -delete
que faria isso por você:
find . -type f -size +200M -print -delete
Comoanalisar a saída do ls
comando 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
).