J'aime la commande watch
, mais elle a ses limites .
Je suis curieux de savoir si je pourrais imiter la fonctionnalité de watch
avec less
. Je recherche principalement la possibilité de faire défiler mon répertoire car il est modifié dynamiquement via un script en cours d'exécution.
Dans less
, vous pouvez taper F
pour continuer la lecture à la fin d'un fichier (comme tail -f
); vous pouvez taper :e
et un nom de fichier pour afficher un autre fichier, mais malheureusement, si vous entrez le nom du fichier actuel, less
ne recharge pas le fichier. Cependant il y a une astuce pour lui faire relire le fichier courant, suggérée par sabgenton : type :e
et entrez le nom d'un fichier inexistant ; qui provoque moins pour afficher un message d'erreur, puis recharger le fichier actuel.
Si vous cherchez une alternative à watch ls
, Voici quelques-uns:
auto-revert-mode
, il rechargera le fichier ou le répertoire toutes les 5 secondes (le délai est configurable).R
pour recharger l'URL (locale).Shift+F rendra less
similaire à tailf
. Autrement dit, il est actualisé si davantage de données sont ajoutées au fichier.
Tapez simplement:
less +F filename
Cela émule en appuyant sur "F" dans l'éditeur.
man
les pages peuvent être très informatives. Ne vous laissez pas intimider par eux. Parmi tout le reste, man less
indique que vous pouvez utiliser la commande R
pour:
R Repaint the screen, discarding any buffered input. Useful if the file is changing while it is being viewed.
(Je me rends compte que cette question a plus de 6 ans, mais elle revient sur les recherches Google, donc je ne suis pas le seul à avoir cliqué sur le lien pour arriver ici.)
La touche "F" lors de l'exécution de less
fera un "suivi" similaire à tail -f
, mais je ne sais pas si cela permettra d'atteindre ce que vous recherchez ici.
Je tape normalement G pour réduire la sortie sur une base unique. Je le trouve particulièrement utile sur un système de fichiers réseau comme CIFS.
R
pour repeindre ne recharge pas toujours le fichier.[1]
Une solution de contournement qui recharge toujours le fichier consiste à appuyer sur hq
, ce qui ouvrira la page d'aide, puis à quitter. Cela a pour effet secondaire de forcer le fichier à se recharger.
[1] Voici quelques exemples de situations que R
font et ne rechargent pas:
>
et >>
changements: NE PAS se rechargersed -i
, gEdit, TextEdit: NE PAS se rechargervi
changements: NE PAS se rechargervi
changements: NE PAS se rechargerJe crois que la différence se résume à savoir si l'inode change (vous pouvez vérifier avec ls -i foo.txt
). Si l'inode change, alors R
ne fonctionnera pas.
Vous pouvez utiliser vim pour lire le fichier, puis ajouter le mappage suivant à votre .vimrc
fichier et vous pouvez facilement recharger un fichier avec ,r:
let mapleader = ","
nnoremap <leader>r :edit <CR>
Notez que si vous avez déjà modifié le fichier, vim se plaindra. Changez simplement en
let mapleader = ","
nnoremap <leader>r :edit! <CR>
Pour ignorer les modifications.
Vous pouvez le diriger vers tail -f
à la place, cela vous obligerait à suivre la sortie. Vous perdriez cependant la possibilité de vous déplacer (faire défiler) votre sortie.
Je viens de trouver ce fil comme n'importe qui d'autre. Je voudrais ajouter la solution lorsque vous êtes déjà à la fin du fichier, en utilisant 'g' suivi de 'G' forcera une actualisation du fichier.
J'ai fini par faire un bouton macro pour cela dans mon programme de terminal (SecureCRT). La macro est simplement "gG".
Si vous n'êtes pas opposé à l'utilisation d'un navigateur, vous pouvez lancer le serveur Web Algernon avec cette commande:
algernon -a -t /directory/name
Une liste de fichiers sera ensuite affichée et actualisée automatiquement à http: // localhost: 3000 /