it-swarm-eu.dev

Existuje někdy důvod, proč používat „kočku“, když máš „méně“?

K prohlížení souborů jsem používal cat. Pak jsem se dozvěděl, že less je obvykle lepší, a je nutné, pokud je soubor delší než několik desítek řádků.

Moje otázka: Existuje někdy důvod použít cat místo less? Je situace, kdy cat je lepším řešením?

63
Ram Rachum

Já osobně preferuji view pro statický obsah nebo tail -f pro dynamický obsah.

To však neodpovídá na vaši otázku. Říká se „proč používat více, pokud máte méně“ ;-)

Ale existují případy, kdy dávám přednost kočce před méně: obvykle pracuji s okny X11. Tato okna mají vyrovnávací paměť, kterou lze nastavit na několik stovek řádků.

Dělat cat pro - řekněme 200 řádků a pak použití myši s posuvníkem je pro mě pohodlnější než použití less v těchto případech.

22
Nils

Ačkoli oba příkazy umožňují zobrazit obsah souboru, jejich původní účel je zcela odlišný.

méně rozšiřuje možnosti více . Ten byl vytvořen pro prohlížení obsahu souboru jeden po druhém. méně přidává funkce, jako jsou zpětné pohyby a lepší správa paměti (není nutné přečíst celý soubor, než se zobrazí první řádky).

kočka zřetězí soubory a vytiskne výsledek na standardní výstup. Pokud zadáte pouze jeden soubor, zobrazí se obsah tohoto souboru. Když zadáte více souborů, stane se „výkonným“. Dobrým příkladem je kombinace split a cat. První příkaz rozdělí velký soubor na malé části. Druhý pak zřetězí malé části do jediného souboru.

Zpět na vaši otázku, kočka by byla upřednostňována v autonomním skriptu vyžadujícím, aby soubory byly čteny zcela (nebo zřetězené) bez interakce. Pokud jde o prohlížení souborů, myslím, že je to spíše otázka vkusu.

95
nrolans

Obvykle používám cat, když potřebuji napsat příkaz založený na něčem v souboru. cat je pohodlnější, protože můžete vidět soubor (pokud je malý), zatímco máte přístup k výzvě Shell. Umožňuje také obložení potrubí.

23
Amir Rachum
Existuje situace, kdy je kočka lepším řešením?

Když se zabýváte více než jedním souborem a chcete je zřetězit.

Ze stránky man:

cat f - g
        Output f's contents, then standard input, then g's contents.
17
jasonwryan

Existují lidé, kteří tvrdě tvrdí, že jediným účelem cat je con cat enate soubory. Pro každé další použití existuje more (nebo less).

Ale to nebere v úvahu jednu docela důležitou skutečnost: cat je o jeden znak méně psát. Tyto příkazy používám tak často, že o jeden znak méně je neomylný.

Dalším důvodem je, když chcete vytvořit soubor. Často kopíruji a vkládám text z webu do souboru jako je tento (zobrazí se příkaz Prompt):

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

To znamená, že otevřím soubor filename pro přístup k zápisu, vložím obsah a uzavřete proud stisknutím Ctrl-D. Ani less ani more to nemohou udělat a je to rychlejší než otevření editoru.

15
Konrad Rudolph

Někdy nechcete, aby stránkování, které less dělá, a jen chcete kompletní soubor, takže byste použít cat.

9
Mike Brentlinger

Používám less -FX, Což způsobí, že se less chová jako cat, když lze soubor zobrazit na jedné obrazovce. Z less(1) manpage:

-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
user26112

Používám catgrep (více) souborů.

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

Vím, že grep podporuje názvy souborů, ale pokud grepujete stejný soubor pro různé hledané výrazy, je editace příkazu, kde je hledaný výraz poslední věcí na řádku, snazší, pak je třeba ctrl + klávesa se šipkou zpět skrz linie.

4
Fake Name

cat lze použít ke zúžení několika binárních souborů do jednoho velkého:

cat data.001 data.002 data.003 > bigdata.dat
4
Michał Šrajer

Na obrazovce zůstává cat. Všechno less zmizí.

Objasněno/pro Volker Siegel:

Výstup cat zůstává na obrazovce. Vše, co ukazuje less, zmizí po uzavření.

2
AWE

A less není předinstalován ve všech distribucích GNU/Linux. (např. Gentoo) cat je pravděpodobně všude.

2
xin

Myslím, že kvůli poularitě unixových variant nyní mnoho lidí nemusí spravovat své systémy (s pomstou). Když se věci rozplývají, možná budete moci restartovat počítač a vstoupit do systému, který se nazývá omezené prostředí.

Získáte příkazový řádek a přístup k malé sadě toho, co se považuje za užitečné příkazy, které jsou malé a obvykle staticky propojené. Můžete dostat vi jako editor nebo dokonce menší ed, ale ne emacs nebo vim. Dostali byste kočku, ale ne méně. Záměrem je poskytnout vám dostatek nástrojů k opravě vašeho systému, aniž by bylo třeba příliš mnoho prostředků, protože tyto zdroje mohou být nesprávně nakonfigurovány nebo všechny vyčerpány. čím méně jsou tyto okolnosti nadbytečné.

2
Paddy3118

Oba jsou odlišné. less je nestandardní pager (more je standardní), používá se pro prohlížení textu, zatímco cat je standardní obslužný program, používaný pro zřetězení jakéhokoli typu a počtu datové proudy do jednoho.

Mohlo by se zdát, že za stejných okolností dělají totéž, ale znovu to platí i pro jiné nástroje.

1
Kusalananda

Může se jednat o problém s eskalací oprávnění, protože v rámci „méně“ můžete stisknutím tlačítka „v“ upravit soubor nebo „!“. poslat příkaz Shell.

Možná budete chtít některým uživatelům povolit prohlížení souboru, který může číst pouze superuživatel, ale nedovolte těmto uživatelům upravovat soubor nebo obecně používat oprávnění superuživatele. Můžete to provést úpravou '/ etc/sudoers', abyste mohli používat 'Sudo/bin/cat/etc/importantfile'. Nechtěli byste povolit 'Sudo/usr/bin/less/etc/importantfile', protože by mohli použít 'v' k úpravě souboru nebo použít '!' spustit Shell s plnými oprávněními superuživatele.

Uživatelé by samozřejmě mohli používat „Sudo/bin/cat/etc/importantfile | méně „a stále je používáme„ méně “, bez bezpečnostních rizik.

1
bgvaughan

Potrubí kočky skrz grep je užitečné:

cat <filename> | grep -i "string of interest"
0
RobW

Pro větší pohodlí. kočka má 3 znaky, zatímco více/méně má 4 znaky. A psací kočka vyžaduje pouze levou ruku.

0
lamwaiman1988

Jak 'méně', tak 'více' bude fungovat přesně jako 'kočka', pokud výstup není terminál (tty), pokud jde o roury a soubory, oba se vrátí k žádné stránkování.

Myslím, že je bezpečné říci, že „kočka“ je vždy přítomna na jakémkoli systému typu Unix, který kdy najdete. Přítomnost „méně“ a/nebo „více“ v jakémkoli systému je méně předvídatelná.

Proto v skriptech, pokud potřebujete pouze operaci bez paginace, je 'cat' určitě přítomna všude, kde je váš skript použit v systému typu Unix.

0
user208007

Pokud jde o to, jak zobrazit znaky na obrazovce, less může dělat to, co cat může dělat; A mnohem víc.

Existuje však velmi dobrý důvod pro použití kočky v některých případech:
less je jen příliš složité, aby to hodilo na velmi jednoduché problémy. Mám tolik možností, že je těžké najít ty, které se týkají cat- na manuálové stránce.


Chcete zobrazit karty v Makefile?

V man cat, první možnost je -A.
Popis není užitečný: -vET.
Ale dlouhý název volby zní správně: --show-all.

A cat -A Makefile dělá, co potřebuji.


Nyní jděte najít to pro less.

0
Volker Siegel