Você parece especificar o nome do arquivo de duas maneiras diferentes:
DATE=$(date --date="2 hours ago" +"%d-%m-%Y_%H")
Acima, existe, e. um _ entre o ano e a hora.
Mas a data que você gerou tinha um formato diferente:
DATE=$(date +"%d_%m_%Y-%H:%M:%S")
No entanto, isso ainda não resolveria o problema inerente de obter "uma data mais ou menos duas horas atrás", porque leva um único segundo para ir das 13:00:00 às 12:59 : 59, que não corresponde a um padrão "2017-11-20_13 *".
Eu investigaria usando find
:
find . -name "*.tar" -maxdepth 0 -cmin +120 -delete
deve matar todos os arquivos * .tar no diretório atual com mais de duas horas (use +119 para ter um tempo de cortesia de um minuto). Além disso, você pode omitir -delete
ao testar se essa abordagem funciona.