Tohle ve skutečnosti není tail Chování uživatele -- je to terminál. Tail právě posílá proud výstupu do stdout, který jde do vašeho terminálu, a vy vkládáte prázdné řádky doprostřed tohoto výstupu stisknutím klávesy Enter. Samotný Tail ve skutečnosti od vás vůbec nepřijímá vstup. Můžete napsat, cokoli jiného chcete, a to se také zobrazí.
less , je však konzolová aplikace a přebírá vstup a zpracovává jej. Je to správa konzoly pomocí ovládacích sekvencí terminálu, což je způsob, jak můžete posouvat. Umožnění vkládání libovolných znaků do streamu by zkazilo zobrazení a stejně tak méně využívá váš vstup k ovládání programu.
Bohužel se zdá, že nemá jak vizuálně označit aktuální pozici. To však není tak hrozný požadavek na funkci, a méně dělá stále čas od času získávat nové funkce.
Našel jsem vaši otázku, když jsem pro sebe hledal stejnou odpověď.
Zklamán přijatou odpovědí jsem přišel s řešením. Není to ideální, ale umožňuje mi to označit svou pozici v protokolu, který sleduji, less , což je celá podstata.
Vytvořil jsem malý spustitelný skript (nazval jsem ho marklog ) s následujícím obsahem a vložte jej do cesty:
#!/bin/sh
echo >> $1
echo >> $1
echo >> $1
echo `date` ---------------------------------------------------------------------- >> $1
echo >> $1
echo >> $1
Samozřejmě to funguje pouze v případě, že máte přístup k zápisu do souboru protokolu – což může být v mnoha situacích překážkou. Vytvořil jsem také tuto verzi, kterou používám k zápisu do souborů protokolu, které nevlastním (ale ke kterým mám sudo přístup):
#!/bin/sh
sudo sh -c "echo >> $1"
sudo sh -c "echo >> $1"
sudo sh -c "echo >> $1"
sudo sh -c "echo `date` ------------------------------------------------------------------------- >> $1"
sudo sh -c "echo >> $1"
sudo sh -c "echo >> $1"
Tyto skripty poskytují přesně ten druh vizuální přestávky, kterou jsem hledal. Existují alespoň 3 způsoby, jak je můžete použít:
-
V místě, kde byste normálně při použití
tail -fněkolikrát stisknuli enter , místo toho spusťtemarklogz jiného terminálu (s uvedením cesty k souboru protokolu jako argumentu). -
Použijte Ctrl Z pozastavit
lesstakže skript můžete spustit ve stejném okně terminálu, ale když přepneteless(pomocífg, samozřejmě), již nebude v režimu 'sledovat', takže budete muset stisknout Shift F znovu... -
Konečně – a to může být nejpohodlnější způsob, protože nemusíte zadávat cestu k souboru protokolu:Spustit
marklogpřímo zlesszadáním!marklog %.Lessnahradí aktuální název souboru za%. Nicménělessnebude reagovat na! když je v režimu 'následovat', takže budete muset stisknout Ctrl C pro ukončení režimu sledování nejprve spusťte!marklog %a poté Shift F znovu.
S metodou 3 také získáte další bonus z historie příkazů Lesse:Stačí stisknout ! a poté pomocí šipky nahoru vyberte nejnovější příkaz (pro mě je to vždy marklog ).
Doufám, že to někomu pomůže stejně jako už pomohlo mně.