Главная причина я не использую vi/vim, состоит в том, что это модально. Главная причина я действительно использую vi, состоит в том, что это доступно почти везде.
Я лично предпочитаю view
для статического содержания или tail -f
для динамического контента.
Это не отвечает на Ваш вопрос, все же. Существует высказывание, "почему использование больше, если у Вас есть меньше" ;-)
Но существуют случаи, где я предпочитаю кошку меньше: Я обычно работаю с X11-окнами. Эти окна имеют буфер прокрутки, который может быть установлен на некоторую сотню строк.
Выполнение a cat
для - скажем, 200 строк и затем использование мыши с полосой прокрутки более удобно для меня, чем использование less
в этих случаях.
Передающая по каналу кошка через grep полезна:
cat <filename> | grep -i "string of interest"
grep
берет имя файла в качестве аргумента, или Вы могли использовать перенаправление. Канал является дорогим.
– Chris Down
28.09.2011, 00:06
grep [search term] [filename]
Поэтому это - больше боли для редактирования критерия поиска, если я использую терминальную историю. Путем передачи по каналу к grep критерий поиска является последней вещью на строке, и легче отредактировать.
– Fake Name
28.09.2011, 06:39
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' без угроз безопасности.
Я предполагаю из-за популярности вариантов Unix теперь, многие люди не должны администрировать свои системы (с местью). Когда дела идут сиськи, Вы могли бы просто смочь перезагрузить и ввести Вашу систему в то, что называют ограниченной средой.
Вы получаете командную строку и доступ к маленькому набору того, что считают полезными командами, которые являются маленькими и обычно статически связаны. Вы могли бы получить vi как редактор или даже меньший редактор, но не emacs или энергия. Вы получили бы кошку, но не меньше. Идея состоит в том, чтобы дать Вам, достаточно инструментов для восстановления системы, не беря слишком много снабжает, поскольку те ресурсы могут быть неправильно настроены, или все израсходованные. меньше команды onder те обстоятельства является лишним.
cat
может привыкнуть к concat несколько двоичных файлов в один большой:
cat data.001 data.002 data.003 > bigdata.dat
Я использую cat
кому: grep
(несколько) файлы.
cat <filename1> [<filename2> <filename3>] | grep -i "string of interest"
Я знаю grep
имена файлов поддержек, но Если Вы захватываете тот же файл для различных критериев поиска, редактируя команду, где критерий поиска является последней вещью на строке, легче затем необходимость к ctrl+arrow-key назад через строку.
Иногда Вы не хотите разбиение на страницы это less
делает и просто хотят полный файл, таким образом, Вы использовали бы cat
.
Существуют люди, которые утверждают яростно что единственная цель cat
должен связать файлы. Для любого использования, существует more
(или less
).
Но этому не удается принять во внимание один довольно важный факт: cat
один символ меньше для ввода. Я использую те команды так часто, что один символ меньше является легкой задачей.
Другая причина состоит в том, когда Вы хотите создать файл. Я часто текст копии-и-вставки от сети в файл как это (показанная командная строка):
$ cat > filename
<Cmd-V>
<Ctrl-D>
$
Таким образом, я открываю файл filename
для доступа для записи вставьте содержание и закройте поток путем нажатия Ctrl-D. Ни один less
ни more
может сделать это, и это быстрее, чем открытие редактора.
$<filename
(где $
подсказка), вызывает $PAGER с stdin, подключенным с filename
. Это - даже меньше символов для ввода, чем cat
.
– Kevin Cathcart
28.09.2011, 20:33
pbpaste > filename
, и я верю X, имеет что-то подобное. Я действительно все еще использую cat
для быстрого создания файла, просто не для вставки.
– cobbal
29.09.2011, 20:34
pbcopy
/ pbpaste
для других целей.
– Konrad Rudolph
29.09.2011, 21:15
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.
Я обычно использую cat
когда я должен ввести команду на основе чего-то в файле. cat
более удобно, так как Вы видите файл (если это является маленьким), в то время как у Вас есть доступ к приглашению оболочки. Это также позволяет, чтобы канал выровнял.
Хотя обе команды позволяют Вам просматривать содержание файла, их исходные цели очень отличаются.
меньше расширяет возможности больше. Последний был создан для просмотра содержания файла одно экранное за один раз. меньше добавляет опции, такие как обратные перемещения и лучшее управление памятью (никакая потребность считать весь файл перед способностью видеть первые строки).
кошка связывает файлы и печатает результат на стандартном выводе. При обеспечении только одного файла Вы будете видеть содержание того файла. Становится 'мощно' при обеспечении нескольких файлов. Хорошим примером является комбинация разделения и кошки. Первая команда разделит большой файл на небольшие части. Второй затем свяжет небольшие части в единственный файл.
Назад к Вашему вопросу, кошка была бы предпочтена в автономном сценарии, требующем, чтобы файлы были считаны полностью (или связаны) без взаимодействия. С точки зрения просмотра файла я думаю, что это - больше вопрос вкуса.
Для удобства. у кошки есть 3 символа, в то время как больше/меньше имеют 4 символа. И вводящая кошка только требует Вашей левой руки только.
И less
не предварительно установлен на всем GNU/дистрибутивах Linux. (например, хинду) cat
везде, вероятно.
Я использую 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.
CAT
остается на экране. Все меньше
исчезает.
Уточняется / для Volker Siegel:
Выход CAT
остается на экране.
Все, что показано меньше
, исчезает после закрытия.
С точки зрения того, как показывать символы на экране, меньше
может сделать то, что может cat
; и многое другое.
Но для некоторых случаев есть очень веская причина использовать cat:
меньше
просто слишком сложная , чтобы бросать ее на очень простые проблемы. У меня столько вариантов, что найти в man-странице связанные с cat
-нелегко.
Хотите показать вкладки в Makefile
?
В man cat
первым вариантом является -A
.
Описание не помогает: -vET
.
Но длинное название варианта звучит правильно: --show-all
.
И cat -A Makefile
делает то, что мне нужно.
- иди найди это для меньше
.
Они разные. less
- нестандартный пейджер ( more
- стандартный), используемый для просмотра текста, а cat
- стандартная утилита, используемая для конкатенации любого типа и количество потоков данных в один.
Может показаться, что они делают то же самое при некоторых обстоятельствах, но, опять же, то же самое делают и другие утилиты.
И «меньше», и «больше» будут работать точно так же, как «кошка», если вывод не является терминалом (tty), что касается каналов и файлов, они оба вернутся к отсутствию нумерации страниц.
Я думаю, можно с уверенностью сказать, что «кошка» всегда присутствует в любой системе типа Unix, которую вы когда-либо найдете. Наличие «меньше» и / или «больше» в любой системе менее предсказуемо.
Таким образом, в сценариях, если вам нужна только операция без разбивки на страницы, «cat» обязательно будет присутствовать везде, где ваш сценарий используется в системе типа Unix.
view
Вы имеете в виду обычноеvim -R
, или у Вас есть что-то еще с тем именем? – manatwork 29.09.2011, 09:55less +F
делает чтоtail -f
делает. – legends2k 31.12.2014, 11:54less +F
делает чтоtail -f
делает. – legends2k 31.12.2014, 11:54view
не псевдоним; это - ссылка (кvi
илиvim
).vi
взгляды наargv[0]
то, когда это запускается (для наблюдения, что называет его, было вызвано под), и, если этоview
илиrview
, это устанавливает режим только для чтения (как будто Вы ввелиvim -R
). – G-Man Says 'Reinstate Monica' 22.09.2016, 06:54