commande find + supprime les anciens répertoires en fonction de l'horodatage

1

Je veux supprimer des répertoires de plus de 180 jours

Par exemple, les répertoires de plus de 180 jours:

drwxr-xr-x 2 root root 4096 Oct  1  2009 nis
drwxr-xr-x 3 root root 4096 Nov  4  2012 pkgs

J'utilise cette commande:

find /var/tmp  -depth -mindepth 1 -type d -ctime +180  -exec rm -rf {} \;

Après avoir exécuté la commande find, je constate que les anciens répertoires existent toujours.

S'il vous plaît conseiller ce qui ne va pas avec ma commande de recherche?

[root@vm1 /var/tmp]# ls -ltr
total 20
drwxr-xr-x 2 root root 4096 Oct  1  2009 nis
drwxr-xr-x 3 root root 4096 Nov  4  2012 pkgs
drwxr-x--- 2 root root 4096 Dec  3 08:24 1
drwxr-x--- 2 root root 4096 Dec  3 08:41 2
drwxr-x--- 2 root root 4096 Dec  3 08:41 3

[root@vm1 /var/tmp]# find /var/tmp  -depth -mindepth 1 -type d -ctime +180  -exec rm -rf {} \;

[root@vm1 /var/tmp]# ls -ltr
total 20
drwxr-xr-x 2 root root 4096 Oct  1  2009 nis
drwxr-xr-x 3 root root 4096 Nov  4  2012 pkgs
drwxr-x--- 2 root root 4096 Dec  3 08:24 1
drwxr-x--- 2 root root 4096 Dec  3 08:41 2
drwxr-x--- 2 root root 4096 Dec  3 08:41 3

J'essaie aussi ceci (mais pas supprimer l'ancien répertoire) le -mtime change seulement la date de l'ancien répertoire à la date du jour

   find /var/tmp  -depth -mindepth 1 -type d -mtime +180  -exec rm -rf {} \;
maihabunash
la source

Réponses:

1

ctime, mtime et atime se comportent différemment (voir, par exemple, ici )

ctime vérifie l’heure de modification de l’inode (elle est modifiée, par exemple, si vous copiez un fichier plus ancien dans un nouveau répertoire ou disque (ce qui ne change pas mtime))

mtime vérifie l'heure de modification du fichier (qui n'est par exemple pas mise à jour lors de la copie d'un fichier dans un autre emplacement ou lors de la décompression d'un fichier d'une archive, etc.)

atime vérifie le temps d'accès

Je suppose que ctime et mtime diffèrent selon la structure de votre répertoire. (Et ls -ltr montre le mtime, pas le ctime.)

Votre deuxième tentative (avec mtime) ne devrait pas avoir changé le mtime du répertoire (ce comportement est attendu pour atime) et, en fait, pour moi, cette commande fonctionne pour la tâche que vous décrivez. Même en cas d'échec des autorisations d'écriture pour l'un des sous-répertoires, même si vous disposiez d'autorisations d'écriture pour le niveau supérieur. Bien entendu, si le disque était monté en lecture seule, rm échouerait, mais dans ce cas, il devrait être impossible pour cette commande de recherche de modifier l'heure.

0range
la source