Aller au contenu principal
U/
Système
bash

Archiver les fichiers modifiés il y a plus de 7 jours

Écrire un script bash qui crée une archive vieux.tar.gz contenant tous les fichiers ordinaires du répertoire courant modifiés il y a plus de 7 jours, en ignorant les sous-dossiers.

30 minPublié le 20 mai 2026Proposé par Anonyme

Défi

// Lisez attentivement, codez sur votre machine

Énoncé

Écrire un script bash qui collecte dans le répertoire courant tous les fichiers ordinaires dont la date de dernière modification est strictement antérieure à 7 jours, puis les compresse dans l'archive vieux.tar.gz. Les sous-dossiers sont ignorés. Si aucun fichier ne correspond, le script affiche aucun fichier à archiver et se termine avec le code 0 sans créer d'archive.

Contraintes

  • Utiliser find . -maxdepth 1 -type f -mtime +7 pour la sélection.
  • Le fichier vieux.tar.gz est créé dans le répertoire courant.
  • Ne pas inclure vieux.tar.gz lui-même s'il existe déjà (utiliser --exclude).
  • Aucun outil autre que find, tar et les builtins bash n'est nécessaire.
  • Compatible bash 4+ et GNU coreutils (Linux).

Exemple

Répertoire courant (les dates entre parenthèses indiquent l'ancienneté) :

ancien1.log   (modifié il y a 10 jours)
ancien2.csv   (modifié il y a 8 jours)
recent.txt    (modifié il y a 2 jours)

Exécution :

$ bash archiver.sh

Résultat :

vieux.tar.gz  (contient ancien1.log et ancien2.csv)
recent.txt    (inchangé)

Vérification du contenu de l'archive :

$ tar -tzf vieux.tar.gz
./ancien1.log
./ancien2.csv
Espace solution

Proposer une solution

Connectez-vous ou créez un compte pour envoyer votre code (aucune exécution côté serveur — on stocke juste le texte pour la communauté).

// À garder en tête
  • D'abord, faire marcher

    On ne cherche pas à optimiser : d'abord, on fait marcher le truc. Optimiser vient ensuite — et ça aussi, ça s'apprend. (Si un défi porte sur l'optimisation, son énoncé le précise.)

  • Pas de mauvaise réponse

    Il n'y a pas de mauvaise réponse à un défi. Le but, c'est de le faire. Ce qui compte, c'est de s'entraîner.

  • Trop dur ? Au suivant

    Un défi te résiste ? N'hésite pas à en prendre un autre. Ils seront encore là demain.