Разве не просто больше?

45

Когда я делаю more filenameи less filename, казалось бы, что получающиеся терминалы довольно похожи. Я могу перемещаться и искать через мои файлы одинаково ( j, Space, /patternи т.д.).

Я считаю , что трудно поверить , что lessэто moreи наоборот. Есть ли различия между ними?

Зайд
источник
36
lessбольше more, больше или меньше, moreменьше less. ;-)
Алан Хаггай Алави
3
@AlanHaggaiAlavi - Это довольно крутой язык у вас там: D
Кент Павар
3
@AlanHaggaiAlavi Это должен быть ответ. :)
Tripp Kinetics
Это зависит от того, какой Unix используется. На одних lessи moreтех же исполняемых файлах, а на других они разные.
Кусалананда

Ответы:

52

На данный момент разница в основном историческая, я полагаю, что некоторые системы даже имеют жесткую связь с одним moreи lessтем же двоичным файлом.

Первоначально, в moreзначительной степени позволяло вам только двигаться вперед в файле, но было довольно прилично для буферизации вывода.

lessбыл написан как улучшенный, moreчто позволило вам прокручивать отображаемый текст

Первая строка моего в man lessзначительной степени подводит итог:

Less is a program similar to more, but which allows backward 
movement in the file as well as forward movement. 
user455
источник
@jkerian: Помимо текстового поиска и буферизации, не могли бы вы показать практический пример того, как эти два аспекта отличаются друг от друга с точки зрения реализации команд?
Заид
14
Я не вижу, что это исторически, я никогда не видел «больше», которое позволяло бы вам двигаться в обоих направлениях. Вы можете двигаться только дальше. историческая точка зрения заключается в том, что «больше было написано раньше», что означает «видеть больше, чем 1 страница», а название команды «меньше» - это больше шутка, «меньше» - это больше, а «больше» - меньше, в основном, «меньше может сделать больше».
ксенотеррацид
1
У меня есть система Solaris 10, где она moreработает по старинке more- вы не можете вернуться на страницу. И это пейджер по умолчанию. Сводит меня с ума ...
Стефан Ласевский
1
Другими словами, это системы, основанные на FreeBSD (может быть, все BSD?) ... поскольку OS X основана на FreeBSD ... Оболочка по умолчанию @Stefan Solaris без завершения табуляции (включена?) Привела меня в бешенство.
ксенотеррацид
7
Более или менее правильный ответ.
инвертировать
25

lessэто намного больше, чем more, например, у вас гораздо больше функциональности:

g: перейти в начало файла
G: перейти в конец файла
/: поиск вперед
?: поиск назад
N: показать номер строки
: перейти к строке
F: аналогично tail -f, остановка ctrl + c
S: разделенные линии

И я не помню больше ;-)

Bauna
источник
3
h: все, что ты не помнишь;)
törzsmókus
9

В дополнение к дополнительным функциям, уже упомянутым в less, он также имеет vкоманду, которая открывает текущий файл в viтой же позиции. Когда вы выйдете vi, вы вернетесь lessс показанным (возможно, обновленным) файлом.

др-Январь
источник
1
Когда moreон интерактивный, он тоже может начинаться viнажатием v.
Troubadour
4

Есть пара вещей, которые я делаю все время, в lessкоторых я не работаю more(по крайней мере, версии в системах, которые я использую. Одна из них используется Gдля перехода к концу файла и gк началу. Это полезно для файлов журналов, когда вы ищете последние записи в конце файла.Другой - поиск, где lessвыделяется совпадение, в то время moreкак вы просто попадаете в раздел файла, где происходит совпадение, но не укажите, где это.

KeithB
источник
3

Меньше имеет намного больше функциональности.

Вы можете использовать, vчтобы перейти к текущему редактору $. Вы можете перейти в режим tail -f со fвсеми другими советами.

geoffc
источник
3

У Ubuntu все еще есть определенные меньше / больше мусорных ведер. По крайней мере, мой делает, или moreкоманда отправляет различные аргументы для менее.

В любом случае, чтобы увидеть разницу, найдите файл, который содержит больше строк, чем вы видите за один раз в своем терминале. Введите cat, а затем имя файла. Это просто сбросит весь файл. Введите more, а затем имя файла. Если вы используете Ubuntu или, по крайней мере, мою версию (9.10), вы увидите первый экран, а --More--(27%)это означает, что в файле есть что-то еще, и вы уже видели 27%. Нажмите пробел, чтобы увидеть следующую страницу. lessпозволяет перемещаться строка за строкой, назад и вперед, а также поиск и множество других вещей.

В основном, используйте less. Вам, вероятно, никогда не понадобится moreчто-либо. Я использовал lessдля огромных файлов, и, кажется, все в порядке. Я не думаю, что это делает сумасшедшие вещи, такие как загрузка всего этого в память ( блокнот от кашля ). Отображение номеров строк может занять некоторое время с большими файлами.

kāgii
источник
1
Причина, по которой вы видите такое поведение, заключается в том, что одним из параметров, которые программа получает при запуске, является имя, по которому она была вызвана. Если вы берете двоичный файл «less» и копируете или связываете его с «more», то запуск его через «more» меняет его поведение, поскольку он знает, что он должен работать в режиме совместимости. На самом деле, в современной системе Unixy это происходит. Например, в некоторых системах mv, cp и rm являются одинаковыми двоичными файлами, просто меняя поведение в зависимости от того, как он вызывается. Экстремальным примером этого является проект Busybox, популярный во встроенных Linux-системах.
Уоррен Янг
Размеры файлов для / bin / more и / bin / less различны, и каждый из них показывает одну жесткую ссылку (столбец содержит a 1).
Стефан Ласевски
2

По крайней мере, в системах, которые я использовал:

  • more завершается автоматически при достижении конца файла
  • less требует от вас явного выхода.
inetphantom
источник
1

Также меньше может просматривать сжатый / сжатый файл, больше не может этого сделать.

Дерек Р.
источник