Jak otworzyć plik tekstowy w terminalu z natychmiastowym automatycznym odświeżaniem przy każdej zmianie?
Sprawdziliśmy vim
z :set autoread
, ale to wymaga pewnej elementarnej wejściowych (takich jak naciśnięcie klawisza wewnątrz vim
), aby wywołać odświeżania.
Chcę, aby automatyczne odświeżanie było wolne od rąk. Czy jest jakiś hack, aby to zrobić?
Korzystam z Crunchbang 11, ale nie mam nic przeciwko terminalowi.
tail -f $file
.inotify
. Patrząc w górę, jest to interfejs API, do którego muszę uzyskać dostęp za pomocą programowania w języku C, do czego nie jestem skłonny w najbliższym czasie. Szukam rozwiązania polecenia powłoki.inotify-tools
. Używają one wbudowanej w jądro funkcji o nazwie inotify. Za każdym razem, gdy plik jest reagowany na zdarzenie, jest wysyłany za pośrednictwem wiadomości, na którą można działać. Wiele prog. język. takie jak Python, Perl itp. mają biblioteki, które zawierają interfejs API Inotify. Zobacz Wikipedia str: en.wikipedia.org/wiki/InotifyOdpowiedzi:
Powinno to wyświetlać plik raz na sekundę:
źródło
watch -tpcn 1 pygmentize -g filename
watch -g
, nie działa tak, jak można się spodziewać .-g
przełącznik jest rzeczywiście dlapygmentize
. W każdym razie dzięki za ostrzeżenie.watch -n 1 tail file
?Pokazuje aktualizacje syslog, gdy są dodawane do pliku.
źródło
Użyłbym,
watch
jak sugeruje inna odpowiedź, ale tylko po to, aby pokazać, w jaki sposób można podejść do pozornie skomplikowanego problemu przy użyciu bloków konstrukcyjnych udostępnianych przez powłokę, taką jak Unix; pętla while może być prostym sposobem na wykonanie pętli.Przykład
Ekran zostanie wyczyszczony, a po chwili zostanie wyświetlony:
źródło
Jak zasugerowano w komentarzach, możesz również użyć tej opcji,
inotify
ale jest to przesada. Zdecydowanie najprostszy jest w użyciuwatch
. Oto jeden ze sposobów, aby to zrobićinotify
:Zainstaluj
inotify-tools
pakietSłuży
inotifywatch
do sprawdzania pliku pod kątem zmian. Uruchom go w pętli icat
pliku, jeśli zostanie wykryta zmiana (dlatego Igrep
dla ciągutotal
):źródło
-q
(lub--quiet
)grep
wyciszy dopasowaną linię z „total”.watch(1)
jest naprawdę przydatnym narzędziem. [1]Nie polecam
cat
jednak używania .Zamiast tego użyj
head
lubtail
, aby zobaczyć początek lub koniec pliku.źródło