J'utilise bash. Supposons que je possède un répertoire de fichiers journaux /var/myprogram/logs/
Copiez les trois fichiers les plus récents dans un répertoire (récursivement) vers un autre répertoire spécifié
Sous ce répertoire, j'ai de nombreux sous-répertoires et sous-sous-répertoires qui incluent différents types de fichiers journaux de mon programme. Je voudrais trouver les trois derniers fichiers (modifiés plus récemment), dont le nom commence par 2010
, sous /var/myprogram/logs/
, indépendamment du sous-répertoire et copiez-les dans mon répertoire personnel.
Voici ce que je ferais manuellement
1. Allez dans chaque répertoire et faire ls -lt 2010*
pour voir quels fichiers commençant par 2010
sont modifiés le plus récemment.
2. Une fois que je passerai par tous les répertoires, je saurais quels sont les trois plus récents. Je les copie donc manuellement dans mon répertoire personnel.
C'est assez fastidieux, alors je me demandais si je pouvais peut-être canaliser certaines commandes ensemble pour faire cela en une seule étape, de préférence sans utiliser de scripts shell?
J'ai cherché dans find
, ls
, head
et awk
que je pourrais être en mesure d'utiliser, mais ne l'ai pas compris la bonne façon de les coller ensemble. Faites-moi savoir si je dois clarifier. Merci.
Je aime vraiment cette solution. Vous n'avez même pas utilisé une boucle FOR. Merci. – Russell