Kočka (Unix) - cat (Unix) - Wikipedia
Původní autoři | Ken Thompson, Dennis Ritchie |
---|---|
Vývojáři | AT&T Bell Laboratories |
První vydání | 3. listopadu 1971 |
Operační systém | Unix, Unixový, Plán 9, Peklo |
Typ | Příkaz |
kočka
je standard Utilita Unix který čte soubory postupně a zapisuje je standardní výstup. Název je odvozen od jeho funkce do conkočkaenate soubory.
Dějiny
kočka
byl součástí raných verzí Unix, např. Verze 1 a nahrazen pr
, a PDP-7 a Multics nástroj pro kopírování jednoho souboru na obrazovku.[1]
Verze kočka
svázaný GNU coreutils napsal Torbjorn Granlund a Richard Stallman.[2]
Používání
The Single Unix Specification definuje činnost kočka
číst soubory v pořadí uvedeném v jeho argumentech a zapisovat jejich obsah na standardní výstup ve stejné posloupnosti. Specifikace nařizuje podporu jednoho příznaku možnosti, u pro výstup bez vyrovnávací paměti, což znamená, že každý bajt je zapsán po jeho přečtení. Některé operační systémy, například ty, které používají GNU Základní nástroje, proveďte to ve výchozím nastavení a ignorujte příznak.[3]
Pokud je jeden ze vstupních názvů souborů zadán jako jediný spojovník (-), pak kočka
čte ze standardního vstupu v daném bodě sekvence. Pokud nejsou zadány žádné soubory, kočka
čte pouze ze standardního vstupu.
Příkaz-syntax je:
kočka [možnosti] [názvy souborů]
Možnosti
Příklad některých kočka
možnosti:[4]
- -b (GNU: --číslo-neobsazeno), počet neprázdných výstupních řádků
- -E naznačuje -proti ale také zobrazit znaky konce řádku jako $ (Pouze GNU: -E to samé, ale bez implikace -proti)
- -n (GNU: --číslo), očíslujte všechny výstupní řádky
- -s (GNU: --squeeze-blank), stlačte několik sousedních prázdných řádků
- -t naznačuje -proti, ale také zobrazit karty jako ^ Já (GNU: -T to samé, ale bez implikace -proti)
- -u použít pro standardní výstup bez vyrovnávací paměti. POSIX neurčuje chování bez této možnosti.
- -proti (GNU: - show-nonprint), zobrazuje netisknutelné znaky, kromě karet a znaků na konci řádku
Případy užití
kočka
lze použít k propojení souboru s programem, který ve svém vstupním proudu očekává prostý text nebo binární data. kočka
při zřetězení a výstupu nezničí netextové bajty. Jeho dvěma hlavními případy použití jsou textové soubory a určité binární soubory kompatibilní s formátem.
Zřetězení textu je omezeno na textové soubory používající stejné starší kódování, například ASCII. kočka
neposkytuje způsob zřetězení textových souborů Unicode, které mají Byte Order Mark nebo soubory, které navzájem používají jiné kódování textu.
Pro mnoho strukturovaných binárních datových sad nemusí být výsledný kombinovaný soubor platný; například pokud má soubor jedinečnou záhlaví nebo zápatí, výsledek je falešně duplikuje. U některých multimédií formáty digitálních kontejnerů, výsledný soubor je platný atd kočka
poskytuje efektivní způsob připojování souborů. Video streamy mohou být významným příkladem souborů, které kočka
může zřetězit bez problému, např. the Stream programu MPEG (MPEG-1 a MPEG-2) a DV Formáty (Digital Video), které jsou v zásadě jednoduchými proudy paketů.
Příklady
Příkaz | Vysvětlení |
---|---|
kočka file1.txt | Zobrazit obsah souboru |
kočka file1.txt soubor2.txt | Zřetězit dva textové soubory a zobrazit výsledek v terminálu |
cat file1.txt file2.txt> newcombinedfile.txt | Zřetězte dva textové soubory a zapište je do nového souboru |
cat> newfile.txt | Vytvořte soubor s názvem newfile.txt. Zadejte požadovaný vstup a stiskněte CTRL + D pro dokončení. Text bude v souboru newfile.txt. |
kočka -n soubor1.txt soubor2.txt> nový_číslo.txt | Některé implementace kočky s možností -n mohou také číslovat řádky |
kočka file1.txt> file2.txt | Zkopírujte obsah file1.txt do file2.txt |
kočka file1.txt >> file2.txt | Připojit obsah file1.txt k file2.txt |
kočka soubor1.txt soubor2.txt soubor3.txt | třídit> test4 | Zřetězte soubory, seřaďte celou sadu řádků a zapište výstup do nově vytvořeného souboru |
kočka soubor1.txt soubor2.txt | méně | Spusťte program "méně" se zřetězením file1 a file2 jako jeho vstup |
příkaz | kočka | Zrušení zvláštního chování „příkazu“ (např. Stránkování) při přímém zápisu do TTY (viz níže UUOC) |
Unixová kultura
Definice žargonu
The Soubor žargonu verze 4.4.7 uvádí toto jako definici kočka
:
- Chcete-li chrlit celý soubor na obrazovku nebo do jiného výstupního jímky bez pauzy (syn. Výbuch).
- Podle rozšíření lze vypsat velké množství dat na nepřipravený cíl nebo bez úmyslu je pečlivě procházet. Použití: považováno za hloupé. Vzácné mimo stránky Unixu. Viz také dd, BLT.
Mezi fanoušky Unixu kočka (1) je považován za vynikající příklad uživatelské rozhraní design, protože dodává obsah souboru bez takové výřečnosti, jako jsou mezery nebo záhlaví mezi soubory, a protože nevyžaduje, aby se soubory skládaly z řádků textu, ale pracuje s jakýmkoli druhem dat.
Mezi kritiky Unixu kočka (1) je považován za kanonický příklad špatného designu uživatelského rozhraní kvůli jeho žalostně nenápadnému názvu. Mnohem častěji se používá k odstřelení jednoho souboru standardní výstup než zřetězit dva nebo více souborů. Název kočka protože dřívější operace je stejně neintuitivní jako například LISP je cdr.
Zbytečné používání kat
Zbytečné používání kat (UUOC) je běžný unixový žargon pro konstrukce příkazového řádku, které uživateli poskytují pouze pohodlnou funkci.[5] Toto se také označuje jako „týrání koček“. Aktivita opravování instancí UUOC se někdy nazývá demoggifikace.[6] Příklad společného kočka
zneužití je uvedeno v ocenění:
název kočky | příkaz arg1 arg2 argn
To lze přepsat pomocí přesměrování z stdin místo toho v jedné z následujících forem (první je tradičnější):
příkaz arg1 arg2 argnKromě dalších výhod to umožňují formuláře pro přesměrování vstupu příkaz vystupovat náhodný přístup ve složce, zatímco
kočka
příklady ne. Důvodem je, že formulář pro přesměrování otevře soubor jako deskriptor souboru stdin, který příkaz může plně přistupovat, zatímcokočka
Formulář jednoduše poskytuje data jako proud bajtů.Další běžný případ, kdy
kočka
je zbytečné je místo, kde je příkaz výchozí pro provoz na stdin, ale bude čten ze souboru, pokud je název souboru uveden jako argument. To je případ mnoha běžných příkazů; následující příkladykočka "$ soubor" | grep "$ vzor" kočka "$ soubor" | méněmísto toho lze zapsat jako
grep "$ pattern" "$ file" méně "$ file"Běžné interaktivní použití
kočka
pro jeden soubor je výstup obsahu souboru na standardní výstup. Pokud je však výstup směrován nebo přesměrován,kočka
je zbytečné.A
kočka
psaný s UUOC může být stále upřednostňován z důvodů čitelnosti, protože čtení pipedovaného proudu zleva doprava by mohlo být snazší pojmout.[7] Jedno nesprávné použití symbolu přesměrování „>“ namísto „<“ (často sousedící s klávesnicemi) může trvale smazat obsah souboru, jinými slovy šukání, a jedním ze způsobů, jak se tomu vyhnout, je použitíkočka
s trubkami. Porovnat:příkazout out s:
kočka v | příkaz | command2> outtac
tac je Linux příkaz, který umožňuje prohlížení souborů řádek po řádku, počínaje od posledního řádku. (tac nezruší obsah každého jednotlivého řádku, pouze pořadí, ve kterém jsou řádky uvedeny.) Název je analogický s
kočka
.Používání:
Použití: tac [MOŽNOST] ... [SOUBOR] ... Každý SOUBOR zapíše na standardní výstup, poslední řádek jako první. Bez SOUBORU, nebo když je SOUBOR -, čte standardní vstup. Povinné argumenty pro dlouhé volby jsou povinné pro krátké volby také. -b, - předtím připojit oddělovač před místo za -r, --regex interpretovat oddělovač jako regulární výraz -s, --separator = STRING použít jako oddělovač místo nového řádku STRING --help zobrazit tuto nápovědu a ukončit --version vypíše informace o verzi a ukončíViz také
- vložit
- rozdělit, příkaz, který rozdělí soubor na kousky, ke kterým se kočka může znovu připojit.
- zcat
- méně
Reference
- ^ McIlroy, M. D. (1987). Čtenář Research Unix: anotované výňatky z Programmer's Manual, 1971–1986 (PDF) (Technická zpráva). CSTR. Bell Labs. 139.
- ^ https://linux.die.net/man/1/cat
- ^ GNU Coreutils. "GNU Coreutils manual", GNU, Citováno dne 1. března 2017.
- ^ OpenBSD manuální stránka a verze GNU Core Utiltites kat
- ^ comp.unix.shell. „Časný příklad ocenění UUOC (1994)“, comp.unix.shell prostřednictvím Skupin Google, Citováno dne 1. března 2017.
- ^ Rose, John (2012). „Demoggifikace“. Youtube. SoutEast LinuxFest.
- ^ Nguyen, Dan. „Stanfordská laboratoř pro výpočetní žurnalistiku“. stanford.edu. Citováno 2017-10-08.
externí odkazy
- Specifikace Single UNIX, Vydání 7 od Otevřená skupina
: zřetězit a tisknout soubory - reference k příkazům a nástrojům,- UNIX Style nebo cat -v Považováno za škodlivé - Příspěvek Roba Pikka o správném návrhu příkazů Unix, který jako příklad používá kočku.
- cat (1) originální stránka manuálu v prvním vydání Unix.
- GNU Coreutils odkaz
: zřetězit a zapsat soubory -- OpenBSD Obecné příkazy Manuál
: zřetězit a tisknout soubory -- FreeBSD Obecné příkazy Manuál
–- Plán 9 Programátorská příručka, svazek 1
–- GNU Coreutils odkaz
: zřetězit a zapsat soubory obráceně -