Como señaló Kos, es posible que no sea posible conocer el archivo más antiguo (según la fecha de creación).
Si el tiempo de modificación es bueno para usted y si el nombre del archivo no tiene una nueva línea:
rm "$(ls -t | tail -1)"
Parece que está bien eliminar el archivo modificado más antiguo en lugar del archivo creado más antiguo;
Considero que este es el método más seguro, ya que no se interrumpirá en los nombres de archivo que contengan líneas nuevas:
stat --printf='%Y %n\0' * | sort -z | sed -zn '1s/[^ ]\{1,\} //p' | xargs -0 rm
stat --printf='%Y %n\0' *:imprime una lista separada por NUL de la hora de la última modificación seguida de la ruta del archivo para cada archivo en el directorio de trabajo actual;sort -z:ordena la lista usando NUL como separador de línea;sed -zn '1s/[^ ]\{1,\} //p':elimina la primera aparición de una cadena que contiene uno o más caracteres, no un espacio, seguido de un espacio de la primera línea terminada en NUL y la imprime;xargs -0 rm:pasa la línea terminada en NUL armcomo argumento;
% 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