Jargon file definitionEdit
The Jargon File versjon 4.4.7 viser dette som definisjonen av cat
:
- for Å spytte ut en hel fil til skjerm eller noen annen utgang vask uten pause (syn. blast).
- Ved utvidelse, for å dumpe store mengder data på en uforberedt mål eller uten hensikt leser det nøye. Bruk: regnes som dum. Sjelden utenfor Unix nettsteder. Se også dd, BLT.,
Blant Unix-fans, katt(1) er ansett som et utmerket eksempel på brukergrensesnitt design, fordi det leverer filen innholdet uten et slikt detaljnivå som avstand eller overskrifter mellom filene, og fordi det ikke krever filer består av linjer med tekst, men fungerer med alle slags data.
Blant Unix kritikere, katt(1) regnes som den kanoniske eksempel på dårlig brukergrensesnitt design, på grunn av sin woefully unobvious navn. Det er langt oftere brukes til å sprenge en enkelt fil til standard output enn til å slå sammen to eller flere filer., Navnet katten for de tidligere operasjon er like unintuitive som, si, LISP er cdr.
Ubrukelig bruk av catEdit
Ubrukelig bruk av katten (UUOC) er vanlig Unix-sjargong for kommando linje konstruksjoner som bare gir en funksjon av komfort til brukeren. Dette er også referert til som «katten misbruk». Aktiviteten på å fikse forekomster av UUOC er noen ganger kalt demoggification., Eksempel på en vanlig cat
misbruk er gitt i prisen:
cat filename | command arg1 arg2 argn
Denne kan omskrives ved hjelp av omdirigering av stdin i stedet, på en av følgende former (den første er mer tradisjonell):
command arg1 arg2 argn < filename <filename command arg1 arg2 argn
Utover andre ytelser, input omdirigering former tillate kommando for å utføre random access på fil, mens cat
eksempler ikke., Dette er fordi omdirigering skjemaet åpnes filen som den stdin descriptor fil som-kommandoen, kan få full tilgang, mens cat
form bare gir data som en strøm av bytes.
en Annen vanlig tilfelle der cat
er unødvendig er der en kommando som standard til å operere på stdin, men vil lese fra en fil, hvis filnavnet er gitt som et argument., Dette er tilfelle for mange vanlige kommandoer; de følgende eksemplene
cat "$file" | grep "$pattern" cat "$file" | less
i stedet kan skrives som
grep "$pattern" "$file" less "$file"
En felles interaktiv bruk av cat
for en enkelt fil for å overføre innholdet av en fil til standard output. Imidlertid, hvis resultatet er sendt eller videresendt, cat
er unødvendig.
En cat
skrevet med UUOC kan likevel være å foretrekke for lesbarhet grunner, som å lese en rørledning stream venstre-til-høyre kan være lettere å forklare., Også, en feil bruk av omdirigering symbol «>» i stedet for «<» (ofte tilstøtende på keyboard) kan slette innholdet i en fil, med andre ord jobben, og en måte å unngå dette på er å bruke cat
med rør. Sammenlign:
command < in | command2 > out <in command | command2 > out
med:
cat in | command | command2 > out