Existem várias maneiras pelas quais isso pode ser feito. A combinação de find -print0
e xargs -0
é poderosa e segura para trabalhar em combinação com sed -z
(usando NULL como delimitador de linha):
find /home/ec2-user/backups -type f -mtime +3 -print0 |\
sed -z 's/^.*\?backups/s3:\//' |\
xargs -0 -n 1 s3cmd del
Como s3cmd
não suporta (ainda) a exclusão de vários arquivos, xargs
requer -n 1
para limitar a execução a uma linha por vez.
Outra maneira, talvez mais simples, é canalizar find
a read
e usar substituição de variável bash:
find /home/ec2-user/backups -type f -mtime +3 |\
while read file; do s3cmd del ${file#*ups/}; done