GNU/Linux >> Tutoriels Linux >  >> Linux

Comment rechercher et supprimer des fichiers antérieurs à une période donnée sous Linux

Recherche par horodatage de fichier

Les systèmes de fichiers Unix/Linux ont trois types d'horodatage sur chaque fichier. Ils sont les suivants :

  1. Heure d'accès (-atime)  :L'horodatage du dernier accès au fichier.
  2. Heure de modification (-mtime)  :L'horodatage de la dernière modification du fichier.
  3. Modifier l'heure (-ctime)  :L'horodatage de la dernière modification des métadonnées d'un fichier (telles que les autorisations ou la propriété).

Rechercher et supprimer un fichier de plus de 7 jours

Prenons un exemple, dans lequel nous trouverons et supprimerons un fichier de plus de 7 jours. Nous utiliserons l'option "-mtime ” de la commande find pour cela.

1. Obtenez une liste de fichiers à l'aide de la commande find comme suit :

# find /path_to_directory -mtime +7 -type f -exec ls {}\;

2. Si les noms de fichiers commencent par un modèle particulier, filtrez-le comme suit :

# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec ls {}\;

3. Après avoir vérifié et confirmé la sortie, optez pour le script de suppression (c'est très IMPORTANT), sinon il y aura une perte de données irrécupérable.

# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {}\;

4. Si cela doit être fait sur un serveur distant via le travail cron et enregistrer les noms de fichiers des fichiers supprimés, utilisez la commande suivante

# ssh user@remote_ip "find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {} \; >> /tmp/backup_deletion`date +%Y%m%d`.log 2>&1"

Conclusion

Le -mtime le paramètre recherchera les fichiers en fonction de l'heure de modification ; -ctime recherche en fonction de l'heure de changement. Les durées d'utilisation -atime, -mtime et -ctime sont mesurées en jours. La commande find prend également en charge les options qui mesurent en minutes. Ce sont les suivants :

  1. -amin (temps d'accès)
  2. -mmin (heure de modification)
  3. -cmin (modifier l'heure)

Par exemple, pour imprimer tous les fichiers dont le temps d'accès est supérieur à sept minutes, utilisez la commande suivante :

# find . -type f -amin +7 -print

-option plus récente

L'option -newer spécifie un fichier de référence avec une heure de modification qui sera utilisée pour sélectionner les fichiers modifiés plus récemment que le fichier de référence.

Trouvez tous les fichiers qui ont été modifiés plus récemment que le fichier file.txt :

# find . -type f -newer file.txt -print


Linux
  1. Comment rechercher et trier des fichiers en fonction de la date et de l'heure de modification sous Linux

  2. Comment supprimer des fichiers et des répertoires sous Linux à partir de la ligne de commande

  3. Comment rechercher et supprimer des répertoires et des fichiers vides sous Linux

  4. Comment supprimez-vous les fichiers antérieurs à une date spécifique sous Linux ?

  5. Comment puis-je supprimer de manière récursive tous les fichiers et répertoires vides sous Linux ?

Comment trouver et supprimer des liens symboliques brisés sous Linux

Comment rechercher et supprimer des répertoires vides sous Linux

Comment trouver des fichiers basés sur l'horodatage sous Linux

Comment supprimer des fichiers plus anciens que les jours spécifiés sous Linux

Comment supprimer des fichiers répertoriés dans un autre fichier sous Linux

Comment trouver la date et l'heure d'installation du système d'exploitation Linux