(Je pense que je peux utiliser grep, de toute façon ....) Essayer de récursivement liste les fichiers modifiés à une date spécifique, mais, les commandes que j'essaie d'utiliser soit tout listés par date, ou seulement les fichiers dans le répertoire Je suis dedans. Y at-il un moyen de faire cela? Est-ce grep ou autre chose?unix aide avec grep?
Répondre
Vous pouvez combiner ls
et grep
pour répertorier les fichiers de manière récursive, puis rechercher des dates spécifiques.
# List files recursively with `-R` and grep for a date.
ls -lR | grep 'Nov 23'
find
peut être utilisé pour trouver récursive fichiers correspondant aux critères de votre choix. Il peut ensuite afficher ces noms de fichiers, ou les transmettre à une autre commande, ou n'importe quel nombre d'actions.
# Display all files modified yesterday.
find -mtime 0
# Display all files modified yesterday in `ls -l' format.
find -mtime 0 -ls
# Search all files modified yesterday for the string "foobar".
# "{}" is a placeholder for the file names and "+" tells find to
# pass all the files at once to a single invocation of grep.
find -mtime 0 -exec grep foobar {} +
Voir find
, en particulier les prédicats -anewer
, -atime
, -mtime
, -newer
et -newerXY
.
mai quelque chose comme
find . -type f -exec ls -l \{\} \; | grep " Aug 26 2003"
vous commencer?
La plus simple à utiliser est zsh. Beats trouve n'importe quel jour la simplicité et la performance.
ls **/*(m5)
liste récursivement les fichiers modifiés il y a exactement 5 jours. ls **/*(mh-5)
liste les fichiers modifiés au cours des 5 dernières heures. Vous pouvez sélectionner des mois, des jours, des heures, des minutes, des secondes, comme vous le souhaitez. Vous pouvez demander des fichiers accédés il y a N jours au lieu de l'heure de modification si nécessaire.
Bien sûr, la commande ne doit pas nécessairement être ls. Tout ce que vous devez faire fera l'affaire.
Cool. Je ne savais pas que 'ls 'pouvait fonctionner récursivement! – dennycrane