Jargon file definitionEdit
het Jargon File version 4.4.7 geeft dit weer als de definitie van cat
:
- om een volledig bestand naar het scherm of een andere uitvoer te spuwen zonder pauze (syn. Blast).
- bij uitbreiding, om grote hoeveelheden gegevens te dumpen bij een onvoorbereid doel of zonder de intentie om er zorgvuldig door te bladeren. Gebruik: beschouwd als dom. Zeldzame externe Unix-sites. Zie ook dd, BLT.,
onder Unix fans wordt cat(1) beschouwd als een uitstekend voorbeeld van het ontwerp van de gebruikersinterface, omdat het de inhoud van het bestand levert zonder zo ‘ n grootheid als spatiëring of headers tussen de bestanden, en omdat het niet vereist dat de bestanden bestaan uit regels tekst, maar werkt met alle soorten gegevens.
onder Unix-critici wordt cat(1) beschouwd als het canonieke voorbeeld van slecht gebruikersinterface-ontwerp, vanwege zijn jammerlijk onopvallende naam. Het wordt veel vaker gebruikt om een enkel bestand naar standaarduitvoer te blazen dan om twee of meer bestanden samen te voegen., De naam cat voor de vorige operatie is net zo onintuitief als, Laten we zeggen, LISP ‘ s cdr.
nutteloos gebruik van catEdit
nutteloos gebruik van cat (UUOC) is een veelgebruikt Unix-jargon voor opdrachtregelconstructies die alleen een gebruiksfunctie voor de gebruiker bieden. Dit wordt ook wel “kattenmisbruik” genoemd. De activiteit van het fixeren van gevallen van UUOC wordt soms demoggificatie genoemd., Voorbeeld van een gemeenschappelijk cat
misbruik wordt gegeven in de prijs:
cat filename | command arg1 arg2 argn
Dit kan worden herschreven met behulp van de omleiding van de invoer in de plaats, in een van de volgende vormen (het eerste is een meer traditionele):
command arg1 arg2 argn < filename <filename command arg1 arg2 argn
Dan de andere voordelen de input redirection formulieren kunt de opdracht voor het uitvoeren van random access op het bestand, terwijl de cat
voorbeelden niet., Dit komt omdat het omleidingsformulier het bestand opent als de stdin-bestandsdescriptor die volledig toegankelijk is, terwijl het cat
formulier de gegevens eenvoudig als een stroom van bytes verschaft.
een ander veelvoorkomend geval waarin cat
niet nodig is, is waar een commando standaard werkt op stdin, maar uit een bestand zal lezen, als de bestandsnaam als argument wordt gegeven., Dit is het geval voor veel voorkomende commando ‘ s; de volgende voorbeelden
cat "$file" | grep "$pattern" cat "$file" | less
kunnen in plaats daarvan worden geschreven als
grep "$pattern" "$file" less "$file"
een veelgebruikt interactief gebruik van cat
voor een enkel bestand is het uitvoeren van de inhoud van een bestand naar standaarduitvoer. Als de uitvoer echter door een pijpleiding wordt geleid of omgeleid, is cat
niet nodig.
a cat
geschreven met UUOC kan nog steeds de voorkeur krijgen om redenen van leesbaarheid, omdat het lezen van een door pijpleiding van links naar rechts gemakkelijker te conceptualiseren is., Ook kan een verkeerd gebruik van het omleidingssymbool “>” in plaats van “<” (vaak naast Toetsenborden) de inhoud van een bestand permanent verwijderen, met andere woorden clobbering, en een manier om dit te voorkomen is door cat
met pijpen te gebruiken. Vergelijk:
command < in | command2 > out <in command | command2 > out
met:
cat in | command | command2 > out