Существует ли когда-нибудь причина использовать 'кошку', когда у Вас есть 'меньше'?

Главная причина я не использую vi/vim, состоит в том, что это модально. Главная причина я действительно использую vi, состоит в том, что это доступно почти везде.

62
27.09.2011, 23:33
18 ответов

Я лично предпочитаю view для статического содержания или tail -f для динамического контента.

Это не отвечает на Ваш вопрос, все же. Существует высказывание, "почему использование больше, если у Вас есть меньше" ;-)

Но существуют случаи, где я предпочитаю кошку меньше: Я обычно работаю с X11-окнами. Эти окна имеют буфер прокрутки, который может быть установлен на некоторую сотню строк.

Выполнение a cat для - скажем, 200 строк и затем использование мыши с полосой прокрутки более удобно для меня, чем использование less в этих случаях.

20
27.01.2020, 19:32
  • 1
    view Вы имеете в виду обычное vim -R, или у Вас есть что-то еще с тем именем? –  manatwork 29.09.2011, 09:55
  • 2
    Нет - просто vi (или энергия) в режиме только для чтения. Наборы CentOS тот псевдоним по умолчанию. Это не инициирует HIDS при просмотре файла в защищенном каталоге. –  Nils 29.09.2011, 23:32
  • 3
    less +F делает что tail -f делает. –  legends2k 31.12.2014, 11:54
  • 4
    less +F делает что tail -f делает. –  legends2k 31.12.2014, 11:54
  • 5
    На самом деле, view не псевдоним; это - ссылка (к vi или vim). vi взгляды на argv[0] то, когда это запускается (для наблюдения, что называет его, было вызвано под), и, если это view или rview, это устанавливает режим только для чтения (как будто Вы ввели vim -R). –  G-Man Says 'Reinstate Monica' 22.09.2016, 06:54

Передающая по каналу кошка через grep полезна:

cat <filename> | grep -i "string of interest"
-1
27.01.2020, 19:32
  • 1
    Не говоря уже о том, что grep берет имя файла в качестве аргумента, или Вы могли использовать перенаправление. Канал является дорогим. –  Chris Down 28.09.2011, 00:06
  • 2
    , Вы выигрываете 'бесполезное использование кошки' премия! –  ThatGraemeGuy 28.09.2011, 00:14
  • 3
    @TimKennedy - "когда Вы имеете less"находится в заголовке вопроса... –  Chris Down 28.09.2011, 00:35
  • 4
    Upvoted. Я регулярно делаю это. Если я хочу к grep файл несколько время для различных критериев поиска, это легче. grep хочет grep [search term] [filename] Поэтому это - больше боли для редактирования критерия поиска, если я использую терминальную историю. Путем передачи по каналу к grep критерий поиска является последней вещью на строке, и легче отредактировать. –  Fake Name 28.09.2011, 06:39
  • 5
    У Вас может все еще быть упорядочивание, Вы хотите без использования cat: < [filename] grep [search term] и < filename tail -n 1000 | grep pattern. Перенаправление может пойти в значительной степени куда угодно на командной строке. –  camh 28.09.2011, 10:18

Может быть проблема с расширением полномочий, как в 'меньше' Вас может нажать 'v' для редактирования файла или'!' для отправки команды оболочки.

Вы могли бы хотеть позволить некоторым пользователям просматривать файл, который может только быть считан суперпользователем, но не позволить тем пользователям редактировать файл или использовать полномочия суперпользователя в целом. Вы могли сделать это путем редактирования '/etc/sudoers', 'чтобы позволить им использовать' sudo/bin/cat/etc/importantfile '. Вы не хотели бы позволять' sudo/usr/bin/less/etc/importantfile ', потому что они могли использовать' v, 'для редактирования файла или использования'! 'для запуска оболочки с полными полномочиями суперпользователя.

Конечно, пользователи могли использовать 'sudo/bin/cat/etc/importantfile | less' и все еще использовать 'less' без угроз безопасности.

1
27.01.2020, 19:32

Я предполагаю из-за популярности вариантов Unix теперь, многие люди не должны администрировать свои системы (с местью). Когда дела идут сиськи, Вы могли бы просто смочь перезагрузить и ввести Вашу систему в то, что называют ограниченной средой.

Вы получаете командную строку и доступ к маленькому набору того, что считают полезными командами, которые являются маленькими и обычно статически связаны. Вы могли бы получить vi как редактор или даже меньший редактор, но не emacs или энергия. Вы получили бы кошку, но не меньше. Идея состоит в том, чтобы дать Вам, достаточно инструментов для восстановления системы, не беря слишком много снабжает, поскольку те ресурсы могут быть неправильно настроены, или все израсходованные. меньше команды onder те обстоятельства является лишним.

2
27.01.2020, 19:32

cat может привыкнуть к concat несколько двоичных файлов в один большой:

cat data.001 data.002 data.003 > bigdata.dat
4
27.01.2020, 19:32

Я использую cat кому: grep (несколько) файлы.

cat <filename1> [<filename2> <filename3>] | grep -i "string of interest"

Я знаю grep имена файлов поддержек, но Если Вы захватываете тот же файл для различных критериев поиска, редактируя команду, где критерий поиска является последней вещью на строке, легче затем необходимость к ctrl+arrow-key назад через строку.

4
27.01.2020, 19:32

Иногда Вы не хотите разбиение на страницы это less делает и просто хотят полный файл, таким образом, Вы использовали бы cat.

9
27.01.2020, 19:32

Существуют люди, которые утверждают яростно что единственная цель cat должен связать файлы. Для любого использования, существует more (или less).

Но этому не удается принять во внимание один довольно важный факт: cat один символ меньше для ввода. Я использую те команды так часто, что один символ меньше является легкой задачей.

Другая причина состоит в том, когда Вы хотите создать файл. Я часто текст копии-и-вставки от сети в файл как это (показанная командная строка):

$ cat > filename
<Cmd-V>
<Ctrl-D>
$

Таким образом, я открываю файл filename для доступа для записи вставьте содержание и закройте поток путем нажатия Ctrl-D. Ни один less ни more может сделать это, и это быстрее, чем открытие редактора.

15
27.01.2020, 19:32
  • 1
    Если Вы используете zsh в качестве оболочки, можно настроить его так, чтобы $<filename (где $ подсказка), вызывает $PAGER с stdin, подключенным с filename. Это - даже меньше символов для ввода, чем cat. –  Kevin Cathcart 28.09.2011, 20:33
  • 2
    @Kevin, Хороший для знания, но я - пользователь удара. сброс –  Konrad Rudolph 28.09.2011, 20:34
  • 3
    На Mac OS X я использую pbpaste > filename, и я верю X, имеет что-то подобное. Я действительно все еще использую cat для быстрого создания файла, просто не для вставки. –  cobbal 29.09.2011, 20:34
  • 4
    @cobbal Hehe, я никогда не думал об этом даже при том, что я использую pbcopy / pbpaste для других целей. –  Konrad Rudolph 29.09.2011, 21:15
  • 5
    Это - на самом деле два менее символа - необходимо нажать q выходить less :D –  Martin von Wittich 15.09.2013, 21:46
Есть ли какая-либо ситуация, где кошка является лучшим решением?

Когда Вы имеете дело с больше, что один файл и хочет связать их.

Из страницы справочника:

cat f - g
        Output f's contents, then standard input, then g's contents.
17
27.01.2020, 19:32

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

23
27.01.2020, 19:32
  • 1
    Для одного файла, перенаправляя стандартный вход также возможно и часто предпочтителен. –  AProgrammer 28.09.2011, 12:41

Хотя обе команды позволяют Вам просматривать содержание файла, их исходные цели очень отличаются.

меньше расширяет возможности больше. Последний был создан для просмотра содержания файла одно экранное за один раз. меньше добавляет опции, такие как обратные перемещения и лучшее управление памятью (никакая потребность считать весь файл перед способностью видеть первые строки).

кошка связывает файлы и печатает результат на стандартном выводе. При обеспечении только одного файла Вы будете видеть содержание того файла. Становится 'мощно' при обеспечении нескольких файлов. Хорошим примером является комбинация разделения и кошки. Первая команда разделит большой файл на небольшие части. Второй затем свяжет небольшие части в единственный файл.

Назад к Вашему вопросу, кошка была бы предпочтена в автономном сценарии, требующем, чтобы файлы были считаны полностью (или связаны) без взаимодействия. С точки зрения просмотра файла я думаю, что это - больше вопрос вкуса.

93
27.01.2020, 19:32
  • 1
    less всегда позволяет искать в файле, который cat не делает. –  Bernhard 11.08.2013, 09:30
  • 2
    @Bernhard: Что относительно того, чтобы делать grep на кошке производится? –  user3527975 14.11.2017, 23:50

Для удобства. у кошки есть 3 символа, в то время как больше/меньше имеют 4 символа. И вводящая кошка только требует Вашей левой руки только.

0
27.01.2020, 19:32
  • 1
    Почему только использует Вашу левую руку преимущество? Я не использую мышь на терминале... –  Bernhard 17.08.2013, 12:09

И less не предварительно установлен на всем GNU/дистрибутивах Linux. (например, хинду) cat везде, вероятно.

2
27.01.2020, 19:32

Я использую less -FX, который делает less ведите себя как cat когда файл может быть отображен на одном экране. От less(1) страница справочника:

-F or --quit-if-one-screen
       Causes less to automatically exit if the entire file can be dis-
       played on the first screen.

-X or --no-init
       Disables sending the termcap initialization and deinitialization
       strings  to  the  terminal.   This is sometimes desirable if the
       deinitialization string does something unnecessary, like  clear-
       ing the screen.
4
27.01.2020, 19:32

CAT остается на экране. Все меньше исчезает.

Уточняется / для Volker Siegel:

Выход CAT остается на экране. Все, что показано меньше , исчезает после закрытия.

2
27.01.2020, 19:32

С точки зрения того, как показывать символы на экране, меньше может сделать то, что может cat ; и многое другое.

Но для некоторых случаев есть очень веская причина использовать cat:
меньше просто слишком сложная , чтобы бросать ее на очень простые проблемы. У меня столько вариантов, что найти в man-странице связанные с cat-нелегко.


Хотите показать вкладки в Makefile?

В man cat первым вариантом является -A.
Описание не помогает: -vET.
Но длинное название варианта звучит правильно: --show-all.

И cat -A Makefile делает то, что мне нужно.


- иди найди это для меньше .

0
27.01.2020, 19:32

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

Может показаться, что они делают то же самое при некоторых обстоятельствах, но, опять же, то же самое делают и другие утилиты.

1
27.01.2020, 19:32

И «меньше», и «больше» будут работать точно так же, как «кошка», если вывод не является терминалом (tty), что касается каналов и файлов, они оба вернутся к отсутствию нумерации страниц.

Я думаю, можно с уверенностью сказать, что «кошка» всегда присутствует в любой системе типа Unix, которую вы когда-либо найдете. Наличие «меньше» и / или «больше» в любой системе менее предсказуемо.

Таким образом, в сценариях, если вам нужна только операция без разбивки на страницы, «cat» обязательно будет присутствовать везде, где ваш сценарий используется в системе типа Unix.

0
27.01.2020, 19:32

Теги

Похожие вопросы