4 votes

Rouvrir un fichier tronqué en suivant un fichier avec less

Il m'arrive parfois d'exécuter un less +F sur un fichier journal, que je tronque ensuite. J'aimerais less pour se rendre compte que le fichier a été tronqué et commencer à suivre le fichier tel qu'il est maintenant. Actuellement, je suis obligé de faire ce qui suit :

  1. (borne 1) > less +F my-file.txt
  2. (borne 2) > printf "" > my-file.txt
  3. (terminal 1) > quit less
  4. (terminal 1) > redémarrer moins : less +F my-file.txt

Et je dois faire les étapes 3-4 à chaque fois que je tronque le fichier (qui est douzaines o fois par jour). C'est vraiment pénible.

J'aimerais le faire :

  1. (borne 1) > less +F my-file.txt (et toute autre option supplémentaire nécessaire)
  2. (borne 2) > printf "" > my-file.txt

Et c'est tout. less serait automatiquement informé que le fichier a été tronqué et commencerait à suivre le nouveau fichier depuis le début.

Est-ce possible ? Quel drapeau dois-je utiliser pour moins pour y parvenir ?

1voto

katriel Points 4399

Ce n'est pas exactement la réponse que vous recherchez, mais vous pouvez essayer d'utiliser ' queue -F (par opposition à tail -f ') qui vous donnera exactement le comportement que vous recherchez.

0voto

SpigotHater Points 21

Pourquoi ne pas les combiner ainsi ?

tail -F filename | tee | less

Cela me convient parfaitement.

0voto

Yamaho Points 4053

Vous souhaitez spécifier le --follow-name argument à less . A partir de la page de manuel :

Normalement, si le fichier d'entrée l'exécution d'une commande F, less continue d'afficher le contenu du fichier malgré le changement de nom. Si l'option --follow-name est spécifiée, pendant l'exécution d'une commande F, less tentera périodiquement de rouvrir le fichier par son nom. Si la réouverture réussit et que le fichier est différent du fichier original (ce qui signifie qu'un nouveau fichier a été créé avec le même nom que le fichier original (maintenant renommé), less affichera le contenu de ce nouveau fichier. contenu de ce nouveau fichier.

Vos démarches seraient donc maintenant les suivantes :

  1. (borne 1) > less --follow-name +F my-file.txt
  2. (borne 2) > printf "" > my-file.txt
  3. (terminal 1) > Bon appétit !

P.S. Au lieu d'utiliser printf, de nombreux shells tronquent avec l'opérateur de redirection : > my-file.txt

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X