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 arm
como 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