GNU/Linux >> Tutoriels Linux >  >> Linux

Script bash pour supprimer le fichier le plus ancien d'un dossier

Comme l'a souligné Kos, il n'est peut-être pas possible de connaître le fichier le plus ancien (selon la date de création).

Si l'heure de modification vous convient, et si le nom du fichier n'a pas de nouvelle ligne :

rm "$(ls -t | tail -1)"

Il semble que vous puissiez supprimer le fichier modifié le plus ancien au lieu du fichier créé le plus ancien ;

Je considère que c'est la méthode la plus sûre, car elle ne cassera pas les noms de fichiers contenant des retours à la ligne :

stat --printf='%Y %n\0' * | sort -z | sed -zn '1s/[^ ]\{1,\} //p' | xargs -0 rm
  • stat --printf='%Y %n\0' * :imprime une liste séparée par NUL de l'heure de la dernière modification suivie du chemin du fichier pour chaque fichier dans le répertoire de travail courant ;
  • sort -z :trie la liste en utilisant NUL comme séparateur de ligne ;
  • sed -zn '1s/[^ ]\{1,\} //p'  :supprime la première occurrence d'une chaîne contenant un ou plusieurs caractères non un espace suivi d'un espace de la première ligne terminée par NUL et l'imprime ;
  • xargs -0 rm :passe la ligne terminée par NUL à rm comme 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. Un script Bash peut-il être accroché à un fichier ?

  2. Installer des programmes à partir du script Bash ?

  3. Comment connaître le nom du fichier de script dans un script Bash ?

  4. Comment supprimer les lignes qui apparaissent sur le fichier B d'un autre fichier A ?

  5. Ouvrir Vim depuis un script shell Bash

35 exemples de scripts bash

Supprimer le répertoire sous Linux - Comment supprimer un dossier de la ligne de commande

Comment supprimer les caractères (^M) d'un fichier sous Linux

Exécuter le script bash à partir de l'URL

Supprimer une certaine ligne du fichier historique de Bash

bash + lire les variables et les valeurs du fichier par le script bash