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 -f
několikrát stisknuli enter , místo toho spusťtemarklog
z jiného terminálu (s uvedením cesty k souboru protokolu jako argumentu). -
Použijte Ctrl Z pozastavit
less
takž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
marklog
přímo zless
zadáním!marklog %
.Less
nahradí aktuální název souboru za%
. Nicméněless
nebude 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ě.