GNU/Linux >> Znalost Linux >  >> Linux

Bash skript pro odstranění nejstaršího souboru ze složky

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 do rm 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

Linux
  1. Proč skript Bash nerozpozná aliasy?

  2. The Bash ‘?

  3. Instalace programů ze skriptu Bash?

  1. Jak odstranit řádky, které se objevují v souboru B, z jiného souboru A?

  2. Otevřete Vim ze skriptu prostředí Bash

  3. Proměnná ve skriptu Bash, která si zachovává hodnotu z posledního spuštění

  1. Může být Bash skript připojen k souboru?

  2. Bash skript k odstranění nejstaršího souboru ze složky?

  3. bash + čtení proměnných a hodnot ze souboru pomocí bash skriptu