Liste des fichiers récemment modifiés pour un répertoire et tous les sous-répertoires

14

Sous Linux, je connais cette commande pour trouver et lister les derniers fichiers modifiés dans un répertoire avec tous ses sous-répertoires.

find /var/www/ -type f -exec stat --format '%Y :%y %n' {} \; | sort -nr | cut -d: -f2- | head

Existe-t-il un équivalent CLI Windows?

JohnnyFromBF
la source
recherchez-vous uniquement des fichiers modifiés? Ou regardez-vous tous les fichiers?
Keltari
1
Je suis sûr que PowerShell peut le faire beaucoup plus facilement que le batch, mais si vous devez absolument utiliser ce dernier ... Essayez dir /a-d /o-d /tw /s(affichez les fichiers uniquement, triez par date décroissante, utilisez la dernière heure d'écriture pour le tri, reclassez dans les sous-répertoires). Cependant, cela répertoriera tous les fichiers. Pour limiter la liste à n derniers uniquement les fichiers modifiés, l' utilisation dbenham « est brillante solution ici .
Karan
Quelques commentaires sur la commande Linux: (1) Au lieu de -exec, vous voudrez peut-être considérer xargs. (2) Si vous, comme vous le dites, voulez trier un (sous-) arbre de répertoire entier par date de modification (puis regardez le N le plus récent ), alors ce que vous avez est raisonnable. Mais si vous pouvez obtenir les informations dont vous avez besoin en trouvant tous les fichiers modifiés au cours des N derniers jours, regardez find … -mtime ….
Scott
2
Pour ajouter à mon commentaire précédent, vous pouvez également examiner forfiles /s /d +<date>.
Karan

Réponses:

21

PowerShell 2.0

10 derniers fichiers modifiés

Dir C:\folder -r | ? {! $_.PSIsContainer} | sort LastWriteTime | select -last 10

Fichiers modifiés depuis la date indiquée

Dir C:\folder -r | ? {! $_.PSIsContainer -AND $_.lastwritetime -ge '04/18/14'} 

En savoir plus sur http://ss64.com/ps/

nixda
la source
Si vous souhaitez simplement afficher les répertoires contenant des fichiers modifiés, procédez comme suit. Dir d: \ sftp -r | ? {! $ _. PSIsContainer -AND $ _. Lastwritetime -ge '05 / 25/2018 '} | Répertoire findstr
Rob
0
dir c:\windows\ /aa /s /O-D

Répertorie tous les fichiers avec l'attribut archive défini (modifié) dans le dossier c: \ windows et tous ses sous-dossiers par date (le plus récent en premier)

Modifier: cette méthode ne fonctionnera que si vous effacez les bits d'archive à un moment donné ou si la liste ne fait que s'agrandir.

Keltari
la source
1
Qu'est-ce que l'attribut Archive a à voir avec les fichiers récemment modifiés?
Karan
1
Tout . Tout fichier modifié obtient l'attribut d'archivage défini par le système d'exploitation. C'est ainsi que les programmes de sauvegarde savent qu'un fichier a changé et doit être sauvegardé.
Keltari
3
Votre montage est extrêmement important. Les fichiers avec + A ne verront déjà aucun changement. Pourquoi ne pas trouver un moyen de le faire en fonction de la date de modification?
Karan
0

Jetez un œil à MT Directory Changes Watcher. Peut-être convient-il à vos besoins.

Le programme surveille les modifications de fichiers dans un répertoire particulier (répertoire de surveillance), puis copie les fichiers modifiés dans un autre dossier (répertoire miroir) en enregistrant la structure du répertoire. Cela peut être très utile lorsque vous avez une copie locale du site distant et que vous souhaitez télécharger uniquement des fichiers, modifiés localement après le dernier téléchargement.

http://mito-team.com/projects/dcw

MiSHuTka
la source