web-dev-qa-db-fra.com

Comment obtenir uniquement des fichiers créés après une date avec ls?

Avec la commande ls, 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 pour voir tous les fichiers ...

Il y a un équivalent de DIRECTORY/SINCE=date d'OpenVMS?

109
Luc M

Vous pouvez utiliser la commande find 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 en cours qui ont été modifiés depuis hier (il y a 24 heures), utilisez:

find . -maxdepth 1 -mtime -1

Notez que pour trouver des fichiers modifiés avant il y a 24 heures, vous devez utiliser -mtime +1 au lieu de -mtime -1.

132
dogbane
find . -type f -newermt '1/30/2017 0:00:00'

Cela trouvera tous les fichiers modifiés après une date spécifique.

29
nullability
ls -ltr | grep "`date | awk '{print $2" "$3}'`"
1
Trant Batey

J'espère que cela fonctionne:

ls -ltr | awk '$6 == "May" && $7 >=01 && $7 <= 31 {print $9}'

Ici:

$6 indicates position of month
$7 indicates day of the month

cette commande ci-dessus imprime tous les noms de fichiers créés à partir du 1er mai jusqu'au 31 mai

si vous souhaitez également imprimer la date sur la console, essayez ceci

ls -ltr | awk '$6 == "May" && $7 >=01 && $7 <= 31 {print $6"-"$7,$9}'

Si vous souhaitez spécifier le chemin du répertoire, vous pouvez essayer ceci

ls -ltr <path>| awk '$6 == "May" && $7 >=01 && $7 <= 31 {print $6"-"$7,$9}'
0
Rohit Nimmala