Liste des fichiers après une date
Je veux obtenir tous les fichiers après une date spécifique. J'ai essayé avec:
ls -ltr | awk {'print $6'} | sed s/-//g | awk {'if ($1-20110415 > 0 ) {print $1}'}
qui fonctionne à 50% de l'amende. La dernière commande n'imprime que la date du fichier. Comment imprimer la date du fichier et le nom de fichier? Dans le awk $8
est le nom de fichier, mais je ne sais pas comment faire pour le transfert jusqu'à la dernière print
dans la ligne de commande.
Merci,
Luc
Ne pas utiliser
ls
pour analyser les fichiers. Utilisation find
OriginalL'auteur Luke | 2011-04-26
Vous devez vous connecter pour publier un commentaire.
Essayer trouver de commande comme ceci:
Oui trouver la version de OSX est plus âgé qui prend uniquement en charge nombre entier dans
-mtime
OriginalL'auteur anubhava
Si vous êtes à la recherche d'un moyen de trouver la mise à jour des fichiers et des processus, vous pourriez
touch
d'un fichier après votre processus se termine et l'utilisation des find-newer
:Lorsque vous avez besoin d'une mise à jour de la liste des fichiers, vous voulez le faire:
find /path/to/dir -newer touched.file
Ce serait de manière récursive la liste de tous les fichiers dans /chemin/vers/dir qui ont une date de modification est postérieure à celle de touché.fichier. N'oubliez pas la toucher touché.fichier de nouveau lorsque vous avez terminé le traitement de la mise à jour des fichiers ou encore faire une remarque de quel fichier de test sur votre prochaine itération.
OriginalL'auteur Konrad Kiss
Ce que sur cette version légèrement modifiée ?
Semble faire l'affaire pour moi... ?
Ok, c'est bizarre, parce que cela fonctionne bien ici...
Ops...désolé....Je n'ai pas vu la date "26"....J'ai remis à 15....et fonctionne très bien si le nom de fichier ne comprennent pas le symbole" -". Sinon, comment puis-je le faire? Merci
La joie de l'extrême test :)))
Le seul problème est que certains fichiers ont "-" dans le nom de fichier et la commande sed change aussi le nom de fichier d'origine.
OriginalL'auteur Oct
Comment sur l'utilisation de trouver avec une de ses différents en fonction du temps de commutateurs, puis en utilisant le printf pour spécifier quels champs que vous souhaitez afficher? Vous pouvez trouver toutes les options dans les pages man.
MODIFIER - je ne suis pas un environnement approprié pour vous donner un exemple en ce moment - je vais essayer de mettre à jour la réponse demain
date +%m%d0000
/tmp/$$ find /tmefndr/oravl01 -type f -nouvelle /tmp/$$ rm /tmp/$$ mais je suis à la recherche d'une autre façon sans commande touchOui, vous pouvez créer un fichier temporaire, la toucher avec la date requise et faire la comparaison avec la -nouvelle... je n'avais pas pensé à cela comme un moyen pour obtenir l'heure exacte que vous souhaitez. Cependant, l'-daystart commutateur peut être utiliser pour vous. Il fait des comparaisons basées sur le actaul jour en question (par exemple. plus récent que 12:45 pm le 3 avril 2010, le retour de tous les fichiers plus récents que 00:00 sur 4/3/10) Peut vous aider à obtenir ce dont vous avez besoin...
OriginalL'auteur ZombieSheep
ls -ltr --time-style=long-iso <path> | awk '$6 >= "2018-10-10" {print $6,$8}'
Cela me donne tous les fichiers sur le chemin d'accès spécifié qui ont été modifiés sur
2018-10-10
ou plus tard.--time-style=long-iso
est un bon moyen de s'assurer que le temps de l'année, le mois et la date. Cela m'a permis d'exclure les anciens fichiers si vous gardez pluriannuel d'fichiers.OriginalL'auteur Dirjit