Come ha sottolineato Kos, potrebbe non essere possibile conoscere il file più vecchio (come per data di creazione).
Se il tempo di modifica va bene per te e se il nome del file non ha una nuova riga:
rm "$(ls -t | tail -1)"
Sembra che tu stia bene eliminando il file modificato più vecchio invece del file creato più vecchio;
Considero questo il metodo più sicuro, in quanto non si romperà sui nomi di file contenenti newline:
stat --printf='%Y %n\0' * | sort -z | sed -zn '1s/[^ ]\{1,\} //p' | xargs -0 rm
stat --printf='%Y %n\0' *
:stampa un elenco separato da NUL dell'ora dell'ultima modifica seguito dal percorso del file per ogni file nella directory di lavoro corrente;sort -z
:ordina l'elenco utilizzando NUL come separatore di riga;sed -zn '1s/[^ ]\{1,\} //p'
:rimuove la prima occorrenza di una stringa contenente uno o più caratteri non uno spazio seguito da uno spazio dalla prima riga con terminazione NUL e la stampa;xargs -0 rm
:passa la riga con terminazione NUL arm
come argomento;
% touch file1
% touch file2
% stat -c '%Y %n' *
1447318965 file1
1447318966 file2
% stat --printf='%Y %n\0' * | sort -z | sed -zn '1s/[^ ]\{1,\} //p' | xargs -0 rm
% ls
file2