#!/usr/bin/php
<?php
$history = file('/home/rdeeson/.bash_history');
$new_history = array();
for ($line = count($history) - 1; $line >= 0; $line--) {
if (array_search($history[$line], $new_history) === false) {
$new_history[] = $history[$line];
}
}
file_put_contents('/home/rdeeson/.bash_history', array_reverse($new_history));
It simply reads the current history file into an array, and creates a new array containing only the last occurrence of each history item which is then saved over the existing history file. I have it set to run every time my PC shuts down.I don't know how long erasedups has not been working, Googling suggests it's not just me though. After running this script, the history file on one of my machines went from 10003 lines to 3746.