Jak zdůraznil Kos, nemusí být možné znát nejstarší soubor (podle data vytvoření).
Pokud vám čas úpravy vyhovuje a pokud název souboru nemá nový řádek:
rm "$(ls -t | tail -1)"
Vypadá to, že jste v pořádku s odstraněním nejstaršího upraveného souboru místo nejstaršího vytvořeného souboru;
Považuji to za nejbezpečnější metodu, protože se nerozbije na názvech souborů obsahujících nové řádky:
stat --printf='%Y %n\0' * | sort -z | sed -zn '1s/[^ ]\{1,\} //p' | xargs -0 rm
stat --printf='%Y %n\0' *
:vytiskne seznam času poslední modifikace oddělený NUL následovaný cestou k souboru pro každý soubor v aktuálním pracovním adresáři;sort -z
:seřadí seznam pomocí NUL jako oddělovače řádků;sed -zn '1s/[^ ]\{1,\} //p'
:odstraní první výskyt řetězce obsahujícího jeden nebo více znaků, nikoli mezeru následovanou mezerou, z prvního řádku ukončeného NUL a vytiskne jej;xargs -0 rm
:předá řádek ukončený NUL dorm
jako argument;
% 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
Pomocí awk sečte hodnoty sloupce na základě hodnot jiného sloupce
Proč může wine spouštět 64bitové programy na Linuxu, ale ne na Macu?