Czy mniej ma taką funkcję jak ogon --follow = name (-F)

41

Polecenie lessmoże być stosowany w celu zastąpienia tailw

tail -f file

aby zapewnić takie funkcje, jak obsługa wyjścia binarnego i nawigacja po przewijaniu:

less +F file

Te +środki przedrostek „udawać I typu, że po starcie”, a kluczowe Frozpoczyna następujący.

Ale może lessrównież zastąpić

tail --follow=name file

co następuje, filenawet jeśli rzeczywisty plik zostanie usunięty lub przeniesiony, jak plik dziennika, do którego się przenosi file.log.1, a następnie tworzony jest nowy plik o takiej samej nazwie jak plik śledzony?

Volker Siegel
źródło
1
Możesz spróbować z less --follow-namelubless --follow-name +F
don_crissti
@don_crissti Fajnie ... less --follow-name +Fczy to jest - nie mam pojęcia, jak to przeoczyłem - byłem prawie pewien, że szukałem strony man w poszukiwaniu follow... dziwnych. Zrób to!
Volker Siegel
Cóż, dalsze wyszukiwanie ujawnia, że ​​zostało już zadane i udzielono odpowiedzi , więc zostawię to jako komentarz. Zawsze możesz tam głosować na odpowiedź.
don_crissti
@don_crissti Racja ... poza tym, że nie ma tam twojej poprawnej odpowiedzi - --follow-namejest opisana, ale +Fnigdy nie wspomniana, i myślę, że jest to bardzo ważne, ponieważ nie jest powszechnie znana.
Volker Siegel,
Jeśli przyszedłeś tutaj z powodu wyszukiwania w Google less follow, PRZECZYTAJ PYTANIE. Już odpowiada, jak wprowadzić lesszmiany w plikach!
Hubert Grzeskowiak,

Odpowiedzi:

40

Tak, lessmoże następować nazwa pliku

Funkcja ma dość niejasną składnię:

less --follow-name +F file.log

Z mniej --follow-nameróżni się od tailopcji --follow=name.
Nie nakazuje lesspodążania za plikiem, zamiast tego modyfikuje zachowanie klawisza poleceń Fwewnątrz less, aby podążać na podstawie nazwy pliku, a nie deskryptora pliku.

Ponadto nie ma normalnej opcji uruchamiania lessw trybie śledzenia.
Możesz jednak użyć wiersza polecenia, aby wykonać naciśnięcia klawiszy po uruchomieniu, poprzedzając je znakiem +.
Łączenie opcji modyfikatora z +F, lessfaktycznie rozpocznie się w (zmodyfikowanym) trybie śledzenia.

Użyj +Fsamego dla ekwiwalentu zwykłego tail -f:

less +F file.log
Volker Siegel
źródło
Podejrzewam, że jeśli podążysz za nieskończonym strumieniem z mniejszą ilością, ostatecznie to wyczerpie twoją pamięć, ponieważ w przeciwieństwie do tail -f, ilość używanej pamięci nie jest ograniczona przez limit przewijania terminala (chyba że limit przewijania terminala jest również nieskończony). mniej + F musi zachować całą historię przewijania i nie może polegać na przeładowywaniu plasterków z pliku na dysku twardym.
CMCDragonkai
@CMCDragonkai Interesujący punkt. lessma opcje kontroli rozmiaru bufora używanego dla każdego pliku ( -bi -B), nie jest dla mnie oczywiste, czy rozmiar jest domyślnie ograniczony.
Volker Siegel
Strona -Bpodręcznika man mówi, że „Domyślnie, gdy dane są odczytywane z potoku, bufory są przydzielane automatycznie w razie potrzeby. Jeśli duża ilość danych zostanie odczytana z potoku, może to spowodować przydzielenie dużej ilości pamięci. Opcja -B wyłącza to automatyczne przydzielanie buforów dla potoków, tak że dla potoku jest używane tylko 64 K (lub ilość miejsca określona przez opcję -b). ". Oznacza to, że podczas czytania z nieskończonej potoku domyślnie przydzielana jest nieskończona pamięć, ale jeśli odczytujesz z pliku takiego jak plik dziennika, wówczas domyślnie używane są plasterki 64 K.
CMCDragonkai
4

W Fedorze co najmniej mniej ma opcję + F, która podąża za zawartością pliku, podobnie jak tail -f ..

Zaktualizuj, spróbuj nacisnąć F w mniej, aby przełączyć się również do trybu śledzenia

użytkownik1529413
źródło
Jesteś pewny? Moja mniej ma sprzecznych opcję o nazwie takie same -F: Strona człowiekiem mniej mówi: -F or --quit-if-one-screen. Którą wersję lessposiadasz? Mój mówi less 458z opcją -V.
Volker Siegel,
Bardzo interesujące, dzięki za link! To nie wydaje się mniej niż GNU. Pełna pierwsza linia less -Vto less 458 (GNU regular expressions). Podaj mi swoją wersję.
Volker Siegel,
Tak, jestem pewien, ale głosuj dalej,
stackexchange
1
Tylko dla pewności, że myślałeś, że cię głosowałem: nie, głosowałem cię.
Volker Siegel,