Kiedyś używałem cat
do przeglądania plików. Potem dowiedziałem się, że less
jest to zwykle lepsze i jest koniecznością, jeśli plik ma więcej niż kilkadziesiąt wierszy.
Moje pytanie: Czy istnieje kiedykolwiek powód, aby użyć cat
zamiast less
? Czy jest jakaś sytuacja, w której cat
jest lepsze rozwiązanie?
less
icat
rozwiązują różne problemy, a każdy z nich jest lepszy od drugiego we własnej dziedzinie problemówcat
doless
późniejszego przesyłania danych wyjściowych .cat
do drukowania bardzo krótkich plików na konsolę, pliki są/proc
i/sys
są bardzo dobrymi kandydatami. W ten sposób widzę zawartość wielu plików jednocześnie.Odpowiedzi:
Osobiście wolę
view
treści statyczne lubtail -f
dynamiczne.To jednak nie odpowiada na twoje pytanie. Jest takie powiedzenie „po co korzystać więcej, jeśli masz mniej” ;-)
Ale są przypadki, w których wolę kota niż mniej: zwykle pracuję z oknami X11. Te okna mają bufor przewijania, który można ustawić na około stu linii.
Wykonanie
cat
for - powiedzmy 200 linii, a następnie używanie myszy z paskiem przewijania jest dla mnie wygodniejsze niż używanieless
w tych przypadkach.źródło
view
ciebie myśli zwyklevim -R
, albo masz coś jeszcze o tej nazwie?less +F
robi to, cotail -f
robi.view
nie jest pseudonimem; to link (dovi
lubvim
).vi
patrzy naargv[0]
kiedy zaczyna (aby zobaczyć jaka nazwa została wywołana pod) oraz, jeżeli jest toview
czyrview
, ustawia tryb tylko do odczytu (jak gdyby wpisanevim -R
).Chociaż oba polecenia pozwalają na przeglądanie zawartości pliku, ich pierwotne cele są zupełnie inne.
less rozszerza możliwości more . Ten ostatni został stworzony, aby przeglądać zawartość pliku po jednym ekranie na raz. less dodaje funkcje, takie jak ruchy do tyłu i lepsze zarządzanie pamięcią (nie trzeba czytać całego pliku, zanim będzie można zobaczyć pierwsze wiersze).
cat konkatenuje pliki i drukuje wynik na standardowym wyjściu. Jeśli podasz tylko jeden plik, zobaczysz zawartość tego pliku. Staje się „wydajny”, gdy udostępniasz wiele plików. Dobrym przykładem jest połączenie split i cat. Pierwsze polecenie podzieli duży plik na małe części. Drugi następnie połączy małe porcje w jeden plik.
Wracając do twojego pytania, cat byłby preferowany w autonomicznym skrypcie wymagającym, aby pliki były czytane całkowicie (lub łączone) bez interakcji. Jeśli chodzi o przeglądanie plików, myślę, że to bardziej kwestia gustu.
źródło
less
zawsze pozwala na wyszukiwanie w pliku, cocat
nie.Zwykle używam,
cat
gdy muszę wpisać polecenie oparte na czymś w pliku.cat
jest wygodniejszy, ponieważ możesz zobaczyć plik (jeśli jest mały), gdy masz dostęp do zachęty powłoki. Pozwala również na wykładanie rur.źródło
Gdy masz do czynienia z więcej niż jednym plikiem i chcesz je połączyć.
Ze strony podręcznika:
źródło
Są ludzie, którzy twierdzą, gwałtownie, że jedynym celem
cat
jest con cat pliki enate. Dla każdego innego zastosowania istniejemore
(lubless
).Ale to nie bierze pod uwagę jednego dość ważnego faktu:
cat
jest jedna postać mniej do wpisania. Używam tych poleceń tak często, że jedna postać mniej nie stanowi problemu.Innym powodem jest to, że chcesz utworzyć plik. Często kopiuję i wklejam tekst z Internetu do pliku takiego jak ten (pokazano wiersz polecenia):
Oznacza to, że otwieram plik
filename
do zapisu, wklejam zawartość i zamykam strumień naciskając Ctrl- D. Aniless
też niemore
może tego zrobić, i to szybciej niż otwarcie edytora.źródło
$<filename
(gdzie$
jest monit) wywoływał $ PAGER z podłączonym standardem stdinfilename
. To nawet mniej znaków do wpisania niżcat
.pbpaste > filename
i uważam, że X ma coś podobnego. Nadal używamcat
do szybkiego tworzenia plików, po prostu nie do wklejania.pbcopy
/pbpaste
do innych celów.q
wyjść, by wyjśćless
: DCzasami nie chcesz, aby podział na strony był taki
less
, a po prostu potrzebujesz pełnego pliku, abyś mógł z niego skorzystaćcat
.źródło
Używam
cat
dogrep
(wielu) plików.cat <filename1> [<filename2> <filename3>] | grep -i "string of interest"
Wiem, że
grep
obsługuje nazwy plików, ale jeśli grepujesz ten sam plik dla różnych wyszukiwanych haseł, łatwiej jest edytować polecenie, w którym wyszukiwane hasło jest ostatnią rzeczą w wierszu, niż ctrl + klawisz strzałki z powrotem przez linię.źródło
cat
można użyć do połączenia kilku plików binarnych w jeden duży:źródło
Używam
less -FX
, co sprawia, żeless
zachowuję się jakcat
wtedy, gdy plik można wyświetlić na jednym ekranie. Z stronyless(1)
podręcznika:źródło
Wydaje mi się, że ze względu na lichość wariantów Uniksa wiele osób nie musi administrować swoimi systemami (z zemsty). Kiedy wszystko idzie w górę, możesz po prostu zrestartować komputer i wejść do systemu w tak zwanym środowisku ograniczonym.
Otrzymujesz wiersz poleceń i dostęp do małego zestawu przydatnych poleceń, które są małe i zwykle połączone statycznie. Możesz dostać vi jako edytor lub nawet mniejszy ed, ale nie emacs ani vim. Dostałbyś kota, ale nie mniej. Chodzi o to, aby zapewnić wystarczającą liczbę narzędzi do naprawy systemu bez zajmowania zbyt dużych zasobów, ponieważ zasoby te mogą być nieprawidłowo skonfigurowane lub wszystkie zużyte. im mniej dowództwa w tych okolicznościach jest zbędne.
źródło
I
less
nie jest wstępnie zainstalowany we wszystkich dystrybucjach GNU / Linux. (np. Gentoo)cat
jest prawdopodobnie wszędzie.źródło
Na
cat
pozostaje na ekranie. Wszystkoless
znika.Wyjaśnione przez / dla Volker Siegel:
Wyjście
cat
pozostaje na ekranie. Wszystko pokazane przezless
zniknie po zamknięciu.źródło
Może występować problem z eskalacją uprawnień, ponieważ w „mniej” możesz nacisnąć „v”, aby edytować plik lub „!” aby wysłać polecenie powłoki.
Możesz zezwolić niektórym użytkownikom na przeglądanie pliku, który może odczytać tylko superużytkownik, ale nie zezwalać tym użytkownikom na edycję pliku lub ogólne korzystanie z uprawnień administratora. Możesz to zrobić, edytując „/ etc / sudoers”, aby umożliwić im użycie „sudo / bin / cat / etc / importantfile”. Nie chcesz zezwalać na „sudo / usr / bin / less / etc / importantfile”, ponieważ mogliby użyć „v” do edycji pliku lub użyć „!” aby uruchomić powłokę z pełnymi uprawnieniami administratora.
Oczywiście użytkownicy mogą użyć „sudo / bin / cat / etc / importantfile | mniej ”i nadal używaj„ mniej ”, bez ryzyka dla bezpieczeństwa.
źródło
Oba są różne.
less
to niestandardowy pager (more
jest to standardowy), używany do przeglądania tekstu, podczas gdycat
jest standardowym narzędziem służącym do łączenia dowolnego typu i liczby strumieni danych w jeden.Mogą się wydawać, że robią to samo w pewnych okolicznościach, ale z drugiej strony, podobnie jak inne narzędzia.
źródło
Dla wygody. kot ma 3 znaki, a więcej / mniej 4 znaki. A pisanie kota wymaga tylko lewej ręki.
źródło
Pod względem sposobu wyświetlania znaków na ekranie,
less
można robić, cocat
można; I wiele więcej.Ale w niektórych przypadkach istnieje bardzo dobry powód, aby używać kota:
less
jest zbyt skomplikowany, aby rzucić go na bardzo proste problemy. Mam tak wiele opcji, że trudno jest znaleźć tecat
powiązane na stronie podręcznika.Chcesz pokazać karty w
Makefile
?W
man cat
pierwsza opcja-A
.Opis nie jest pomocne:
-vET
.Ale długa nazwa opcja brzmi po prostu rację
--show-all
.I
cat -A Makefile
robi to, czego potrzebuję.Teraz znajdź to dla
less
.źródło
Zarówno „mniej”, jak i „więcej” będą działać dokładnie tak samo jak „kot”, jeśli wyjście nie jest terminalem (tty), co do potoków i plików, oba powrócą do braku podziału na strony.
Myślę, że można bezpiecznie powiedzieć, że „kot” jest zawsze obecny w każdym systemie typu Unix, jaki kiedykolwiek znajdziesz. Obecność „mniej” i / lub „więcej” w dowolnym systemie jest mniej przewidywalna.
Dlatego w skryptach, jeśli potrzebujesz tylko operacji bez paginacji, 'cat' z pewnością będzie obecny wszędzie tam, gdzie twój skrypt jest używany w systemie typu Unix.
źródło
more
będzie dostępny, ponieważ wymaga tego specyfikacja Single Unix.less
albomore
będzie obecny, ale myślę, że nie można ufać konkretnemu, ani że jest to „prawdziwa” implementacja… często jedna jest aliasowana do drugiej, czasem „ to minimalna lekka wersja.Przydatne jest przepuszczanie kota przez grep:
źródło
grep
jako argument przyjmuje się nazwę pliku lub można użyć przekierowania. Rura jest droga.less
” jest w tytule pytania ...grep [search term] [filename]
Dlatego trudniej jest edytować wyszukiwane hasło, jeśli korzystam z historii terminali. Piping do grep, wyszukiwane hasło jest ostatnią rzeczą w linii i jest łatwiejsze do edycji.cat
:< [filename] grep [search term]
i< filename tail -n 1000 | grep pattern
. Przekierowanie może przebiegać praktycznie w dowolnym miejscu wiersza poleceń.