Avec la ls
commande, est-il possible d'afficher uniquement les fichiers créés après une date, une heure ...?
Je le demande parce que j'ai un répertoire avec des milliers de fichiers.
Je veux donc voir tous les fichiers qui ont été créés depuis hier.
J'utilise ls -ltr
mais je dois attendre de voir tous les fichiers ...
Il y a un équivalent de DIRECTORY/SINCE=date
OpenVMS?
ls
répertorie les fichiers, mais offre peu de choix pour sélectionner les fichiers à répertorier ou le format de sortie. Utilisez globbing (caractères génériques du shell) oufind
lorsque vous souhaitez sélectionner des fichiers par nom ou par métadonnées (date, par exemple).zsh
:ls -1 -- *(.m-1)
Réponses:
Vous pouvez utiliser la
find
commande pour rechercher tous les fichiers qui ont été modifiés après un certain nombre de jours.Par exemple, pour rechercher tous les fichiers du répertoire actuel modifiés depuis hier (il y a 24 heures), utilisez:
Notez que pour trouver des fichiers modifiés avant 24 heures, vous devez utiliser à la
-mtime +1
place de-mtime -1
.la source
ls
ici, Luc.-mmin 5
répertorie les fichiers modifiés au cours des 5 dernières minutes.-newermt "2011-02-27 13:42"
répertorie les fichiers modifiés depuis la date spécifiée. Vous pouvez utiliser à la-exec ls --color -ld {} +
place de-ls
pour obtenir l’affichage couleur habituel (si vous aimez la sortie ls en couleur).find . -mmin -5
Ceci trouvera tous les fichiers modifiés après une date spécifique.
la source
la source
date
ditJun 03
, maisls
ditJun 3
, donc cela ne fonctionne pas. (2) Il y a une semaine, la date était le 27 mai. Lesls -l | grep "May 27"
fichiers modifiés le jour même, mais également les fichiers modifiés le 27 mai de toute autre année, ainsi que les fichiers portant le nom «27 mai». (Et si vous pensez que est une préoccupation tout à fait faux, regardez « 10 décembre » .) (3) Et, si vous avez réussi àdate
direJun 2
, grep pour qui trouverait àJun 20
traversJun 29
, mais pasJun 2
(avec deux places). … (Suite)ls -ltr
pour obtenir les fichiers les plus récemment modifiés à la fin de la liste. Si vous recherchez une date, il n'y a aucun besoin de le faire (sauf pour obtenir les fichiers du 27 mai 2015 à la fin de la liste, après les fichiers du 27 mai 2014, du 27 mai 2013, etc.). (5) Dans awk, celaprint $2, $3
équivaut àprint $2" "$3
, et est beaucoup plus facile à lire, surtout quand il y a trois autres niveaux de citations.ls -ltr | grep "$(date | awk '{print $2,$3}')"
J'espère que cela fonctionne:
Ici:
Cette commande affiche tous les noms de fichiers créés entre le 1er et le 31 mai.
si vous voulez imprimer la date aussi bien sur la console essayez ceci
Si vous voulez spécifier le chemin du répertoire, vous pouvez essayer ceci
la source
ls
sortie. Et tout le monde ne parle pas anglais :-)