Je dois supprimer d'un dossier tous les fichiers antérieurs à un fichier spécifique.
Exécution de bash sur CentOS 7.
J'ai une solution pour cela, mais je pense qu'il devrait y avoir une manière plus élégante de le faire:
reference_file=/my/reference/file
get_modify_time()
{
stat $1 | grep -Po "Modify: \K[0-9- :]*"
}
pit=$(get_modify_time $reference_file)
for f in /folder/0000* ; do [[ "$pit" > "$(get_modify_time $f)" ]] && rm $f ; done
bash
shell-script
centos
csny
la source
la source
-maxdepth 1
pour garder la recherche non récursive! -newer
signifie «pas plus récent», donc «plus âgé ou du même âge »; le fichier lui-même sera mis en correspondance s'il se trouve dans le chemin d'accèsfind
, juste quelque chose à garder à l'esprit.! -name reference
(voir la troisième puce).comparer les temps de modification des fichiers avec
test
, en utilisant-nt
les-ot
opérateurs (plus récents que) et (plus anciens que):la source