it-swarm-eu.dev

Existuje způsob, jak dynamicky aktualizovat méně příkaz?

Líbí se mi příkaz watch, ale má jeho omezení .

Jsem zvědavý, jestli bych mohl napodobit funkčnost watch s less. Hledám hlavně schopnost procházet můj adresář, protože se dynamicky mění pomocí běžícího skriptu.

146
Zaid

Do pole less můžete zadat F, aby se pokračovalo ve čtení na konci souboru (například tail -f); můžete napsat :e a název souboru pro zobrazení jiného souboru, ale bohužel, pokud zadáte název aktuálního souboru, less soubor znovu nenačte. Existuje však trik, díky kterému je možné znovu přečíst aktuální soubor, navrhl sabgenton : typ :e a zadejte název neexistujícího souboru ; To způsobí, že se zobrazí chybová zpráva a znovu načte aktuální soubor.

Pokud hledáte alternativu k watch ls, zde je několik:

  • Moderní správci souborů (např. Nautilus, Thunar, Konqueror, Dolphin, Finder) obnovují zobrazení v reálném čase.
  • Emacs nemá aktualizaci v reálném čase, ale s auto-revert-mode, načte soubor nebo adresář každých 5 sekund (zpoždění je konfigurovatelné).
  • Přestože je w3m primárně webový prohlížeč, vytváří průchodný prohlížeč adresářů a textových souborů. Stisknutím R znovu načtěte (místní) URL.

Shift+F učiní less podobným tailf. To znamená, že se obnoví, pokud je do souboru připojeno více dat.

68
balki

Jednoduše napište:

less +F filename

To emuluje stisknutí „F“ v editoru.

44
jhclark

man stránky mohou být velmi informativní. Nenechte se nimi zastrašit. Ze všeho ostatního, man less říká, že můžete použít příkaz R k:

   R      Repaint the screen, discarding any buffered input.  Useful if the file is changing while it is being viewed.

(Uvědomuji si, že tato otázka je starší než 6 let, ale objevuje se ve vyhledávání Google, takže nejsem jediný, kdo klikl na odkaz, abych se sem dostal.)

23
destenson

Klávesa „F“ při spuštění less provede „následování“ podobné tail -f, ale nejsem si jistý, zda to dosáhne toho, co hledáte.

5
Dave Jennings

Normálně jen píšu G jednorázově snížit výstup. Považuji to za zvláště užitečné v síťovém systému souborů, jako je CIFS.

5
jorb

R pro překreslení ne vždy načte soubor znovu.[1]

Řešením, které vždy znovu načte soubor, je stisknout hq, čímž se otevře stránka nápovědy, a pak ukončete. To má vedlejší účinek nutit soubor znovu načíst.


[1] Zde je několik příkladů situací, které R dělají a nenabíjejí:

  • > a >> změny: Znovu načíst
  • sed -i, gEdit, TextEdit: NENÍ znovu načten
  • V systému Linux se vi mění: DO se znovu načtou
  • V počítačích Mac se vi změní: NENÍ znovu načteno

Věřím, že rozdíl přijde na to, zda se změní inode (můžete zkontrolovat pomocí ls -i foo.txt). Pokud se inode změní, R nebude fungovat.

3
wisbucky

K přečtení souboru můžete použít vim a poté přidat následující mapování do svého .vimrc a můžete soubor snadno načíst pomocí ,r:

let mapleader = ","
nnoremap <leader>r :edit <CR>

Pokud jste již soubor upravili, vim si stěžuje. Stačí změnit na

let mapleader = ","
nnoremap <leader>r :edit! <CR>

Ignorovat změny.

1
puk

Dalo by se to dát do tail -f místo toho by to vedlo k tomu, že sledujete výstup. Ztratili byste však schopnost pohybovat se (procházet) vaším výstupem.

0
Gert

Právě jsem našel toto vlákno jako kdokoli jiný. Chtěl bych přidat řešení, když už jste na konci souboru, použití 'g' následované 'G' vynutí obnovení souboru.

Nakonec jsem pro to vytvořil tlačítko makra v mém terminálovém programu (SecureCRT). Makro je jednoduše 'gG'.

0
ZMitchell

Pokud se vám nelíbí používání prohlížeče, můžete spustit webový server Algernon pomocí tohoto příkazu:

algernon -a -t /directory/name

Seznam souborů se poté zobrazí a automaticky obnoví na http: // localhost: 3000 /

0
Alexander