Czy to nie tylko mniej więcej?

45

Kiedy to zrobię more filenamei less filename, wydaje się, że powstałe terminale są dość podobne. Mogę poruszać i przeglądać swoje pliki identycznie ( j, Space, /pattern, itd.).

Trudno mi uwierzyć, że lessjest morei vice versa. Czy są jakieś różnice między nimi?

Zaid
źródło
36
lessjest więcej niż more, mniej więcej, moremniejszy niż less. ;-)
Alan Haggai Alavi
3
@AlanHaggaiAlavi - Masz dość dziwną mowę, którą tam masz: D
Kent Pawar
3
@AlanHaggaiAlavi To powinna być odpowiedź. :)
Tripp Kinetics
Zależy to od używanego Uniksa. Na niektórych, lessi moresą takie same wykonywalny, a na innych są one różne.
Kusalananda

Odpowiedzi:

52

Różnica jest w tym momencie głównie historyczna. Sądzę, że niektóre systemy nawet mają morei są lesspołączone z tym samym plikiem binarnym.

Początkowo moreprawie tylko można było przejść do przodu w pliku, ale było całkiem przyzwoite do buforowania danych wyjściowych.

lesszostał napisany jako poprawiony, morektóry pozwolił ci przewijać wyświetlany tekst

Pierwsza linijka mojego man lesspodsumowania podsumowuje:

Less is a program similar to more, but which allows backward 
movement in the file as well as forward movement. 
użytkownik455
źródło
@jkerian: Oprócz przeszukiwania tekstu i buforowania, czy możesz pokazać praktyczny przykład różnic między nimi pod względem implementacji poleceń?
Zaid
14
Nie widzę, żeby to było historyczne Nigdy nie widziałem „więcej”, które pozwoliłyby ci poruszać się w obu kierunkach. możesz iść tylko do przodu w więcej. historycznym punktem byłoby to, że więcej napisano przed mniej, co oznacza „zobacz więcej niż 1 stronę”, a nazwa polecenia mniej znaczy więcej żartu z mniej znaczy więcej, a więcej znaczy mniej, mówiąc w zasadzie mniej znaczy więcej.
ksenoterrakid
1
Mam tutaj system Solaris 10, w którym morezachowuje się jak w starym stylu more- nie można cofnąć strony. I to jest domyślny PAGER.
Doprowadza
1
Innymi słowy, to systemy oparte na FreeBSD (może wszystkie BSD?) ... skoro OS X jest oparty na FreeBSD ... @ Domyślna powłoka Stefana Solarisa bez uzupełniania tabulatorów (włączona?) Doprowadziła mnie do szału.
ksenoterrakid
7
Mniej więcej poprawna odpowiedź.
inwertowanie
25

lessto znacznie więcej niż more, na przykład, masz o wiele więcej funkcji:

g: przejdź na początek pliku
G: przejdź na dół pliku
/: szukaj do przodu
?: szukaj wstecz
N: pokaż numer linii
: goto line
F: podobny do tail -f, zatrzymaj się, naciskając Ctrl + c
S: linie podziału

I nie pamiętam więcej ;-)

Bauna
źródło
3
h: wszystko, czego nie pamiętasz;)
törzsmókus
9

Oprócz wspomnianych już dodatkowych funkcji less, ma także vpolecenie, które otwiera bieżący plik w vitej samej pozycji. Po wyjściu viwrócisz lessdo pokazanego (prawdopodobnie zaktualizowanego) pliku.

dr-jan
źródło
1
Gdy morejest interaktywny, może również zacząć viod naciśnięcia v.
Troubadour,
4

Cały czas robię kilka rzeczy, w lessktórych nie działa more(przynajmniej wersje systemów, z których korzystam. Jedna służy Gdo przejścia do końca pliku i gdo początku. Jest to przydatne w przypadku plików dziennika, gdy szukasz ostatnich wpisów na końcu pliku. Drugim jest wyszukiwanie, w którym lesspodświetla dopasowanie, podczas gdy morepo prostu prowadzi do sekcji pliku, w której występuje dopasowanie, ale nie wskaż gdzie to jest.

KeithB
źródło
3

Less ma znacznie większą funkcjonalność.

Możesz użyć, vaby przejść do bieżącego edytora $. Możesz przejść do trybu tail -f, korzystając z fwszystkich innych porad oferowanych przez inne osoby.

geoffc
źródło
3

Ubuntu nadal ma wyraźne mniej / więcej pojemników. Przynajmniej moje, albo morepolecenie wysyła różne argumenty do mniej.

W każdym razie, aby zobaczyć różnicę, znajdź plik, który ma więcej wierszy niż możesz zobaczyć jednocześnie w swoim terminalu. Wpisz cat, a następnie nazwę pliku. Po prostu zrzuci cały plik. Wpisz more, a następnie nazwę pliku. Jeśli na Ubuntu, a przynajmniej mojej wersji (9.10), zobaczysz pierwszy ekran --More--(27%), co oznacza, że ​​w pliku jest coś więcej, a do tej pory widziałeś 27%. Naciśnij spację, aby zobaczyć następną stronę. lessumożliwia przenoszenie linii po linii, tam iz powrotem, a także wyszukiwanie i całą masę innych rzeczy.

Zasadniczo użyj less. Prawdopodobnie nigdy moreniczego nie będziesz potrzebować . Użyłem lessdużych plików i wydaje się OK. Nie sądzę, że to robi szalone rzeczy, takie jak ładowanie całej rzeczy do pamięci ( Notatnik na kaszel ). Wyświetlanie numerów linii może jednak chwilę potrwać w przypadku dużych plików.

kāgii
źródło
1
Powodem, dla którego widzisz to zachowanie, jest to, że jednym z parametrów, które program otrzymuje podczas uruchamiania, jest nazwa, przez którą został wywołany. Jeśli weźmiesz „mniej” plik binarny i skopiujesz go lub powiążesz z „więcej”, to uruchomienie go przez „więcej” zmienia jego zachowanie, ponieważ wie, że powinien działać w trybie zgodności. W nowoczesnym systemie Unixy dzieje się całkiem sporo. W niektórych systemach, na przykład, mv, cp i rm są takie same binarne, po prostu zmieniając zachowanie w zależności od tego, jak zostało wywołane. Skrajnym przykładem tego jest projekt Busybox, popularny we wbudowanych systemach Linux.
Warren Young,
Rozmiary plików dla / bin / more i / bin / less są różne i każdy z nich pokazuje pojedyncze łącze twarde (kolumna zawiera a 1).
Stefan Lasiewski
2

Przynajmniej na systemach, z których korzystałem:

  • more kończy się automatycznie po osiągnięciu końca pliku
  • less wymaga jawnego wyjścia.
fantom
źródło
1

Również mniej może wyświetlić spakowany / skompresowany plik, więcej nie może tego zrobić.

Derek R.
źródło