Page 1 sur 1

Modification date des fichiers d'une arborescence

Posté : mar. 4 juin 2019 23:10
par tioker
Bonjour,

En deux mots, je veux mettre toute l'arborescence d'un répertoire à une certaine date (antérieure).
J'ai bien trouvé

Code : Tout sélectionner

touch -t 17890714120000 Repertoire
mais ça ne modifie pas ce qu'il y en dessous (si j'ai bien lu le "man" et le "help").

Finalité: remettre dans le passé les répertoires de ma bibliothèque musicale que j'ai modifié en leur ajoutant des photos de pochettes disque et ainsi ne voir que les VRAIS éléments récemment ajoutés.

PS: plutôt une commande qu'un script si c'est pas trop demandé :l .

Merci

Re: Modification date des fichiers d'une arborescence

Posté : mer. 5 juin 2019 00:25
par arghlub
salut tioker ;)

ouais pas de "récursif" sur touch.

faudrait faire une boucle ('if .... fi' ou un 'for')..... il devrait y avoir moyen de faire ça en une ligne.... (atta je vais y réflechir, demain .... là je vais dormir..... )

Re: Modification date des fichiers d'une arborescence

Posté : mer. 5 juin 2019 10:36
par cyrille

Code : Tout sélectionner

find date/  -print0 | xargs -0 -I '{}' touch -r '{}' -d '+2 day' '{}'
avec date/ le répertoire à modifier

En pratique

Création d'un répetoire à plusieurs niveaux et fichiers de test

Code : Tout sélectionner

ragnarok@Fenrir:~$ mkdir -p date/sousdate
ragnarok@Fenrir:~$ touch date/test date/test2 date/sousdate/test3 date/sousdate/test4
On regarde les dates

Code : Tout sélectionner

ragnarok@Fenrir:~$ ls -lR date/
date/:
total 4
drwxr-xr-x 2 ragnarok ragnarok 4096 juin   5 10:33 sousdate
-rw-r--r-- 1 ragnarok ragnarok    0 juin   5 10:33 test
-rw-r--r-- 1 ragnarok ragnarok    0 juin   5 10:33 test2

date/sousdate:
total 0
-rw-r--r-- 1 ragnarok ragnarok 0 juin   5 10:33 test3
-rw-r--r-- 1 ragnarok ragnarok 0 juin   5 10:33 test4
On les avances de 2 jours

Code : Tout sélectionner

ragnarok@Fenrir:~$ find date/  -print0 | xargs -0 -I '{}' touch -r '{}' -d '+2 day' '{}'
On vérifie

Code : Tout sélectionner

ragnarok@Fenrir:~$ ls -lR date/
date/:
total 4
drwxr-xr-x 2 ragnarok ragnarok 4096 juin   7  2019 sousdate
-rw-r--r-- 1 ragnarok ragnarok    0 juin   7  2019 test
-rw-r--r-- 1 ragnarok ragnarok    0 juin   7  2019 test2

date/sousdate:
total 0
-rw-r--r-- 1 ragnarok ragnarok 0 juin   7  2019 test3
-rw-r--r-- 1 ragnarok ragnarok 0 juin   7  2019 test4
C'est OK

Re: Modification date des fichiers d'une arborescence

Posté : mer. 5 juin 2019 13:08
par tioker
Hola merci les spécialistes de la ligne de commande !
@arghlub te creuse pas trop la tête, avec ce que nous a donné @cyrille, y'a de quoi passer un peu de temps.
@tous, ce qui est bien avec ce forum et particulièrement cette rubrique, c'est que non seulement on nous donne souvent la solution, mais en plus y'a matière à creuser, à s'enrichir, à découvrir, jusqu'à s"émerveiller de la puissance du shell...
Je teste demain (aujourd'hui pas possible) et vous fais un retour.
Merci

Re: Modification date des fichiers d'une arborescence

Posté : mer. 5 juin 2019 15:32
par serged
arghlub a écrit :
mer. 5 juin 2019 00:25
salut tioker ;)

ouais pas de "récursif" sur touch.

faudrait faire une boucle ('if .... fi' ou un 'for')..... il devrait y avoir moyen de faire ça en une ligne.... (atta je vais y réflechir, demain .... là je vais dormir..... )
Juste un magic "find" :

Code : Tout sélectionner

find -type f -exec touch -t 201901021100 '{}' \;
pour tout mettre au 2 janvier 2019 11h00.
Pratique ce find pour les commandes qui n'acceptent pas la récursion !

Re: Modification date des fichiers d'une arborescence

Posté : mer. 5 juin 2019 18:46
par tioker
re-bonjour,
tioker a écrit :
mer. 5 juin 2019 13:08
Je teste demain (aujourd'hui pas possible) et vous fais un retour.
Bon, j'ai pas résisté, j'ai trouvé 5 minutes pour m'apercevoir ... que ça fonctionne.
Merci à vous trois !

Re: Modification date des fichiers d'une arborescence

Posté : mer. 5 juin 2019 19:30
par cyrille
bien sûr que ça fonctionne ;)