jargong fil definitionEdit

jargong filversion 4.4.7 listar detta som definitionen av cat:

  1. för att spjuta en hel fil på skärmen eller någon annan utgång diskbänk utan paus (syn. Blast).
  2. i förlängningen, att dumpa stora mängder data på en oförberedd mål eller utan avsikt att surfa det noggrant. Användning: anses dumt. Sällsynta utanför Unix platser. Se även dd, BLT.,

bland Unix-fans anses cat(1) vara ett utmärkt exempel på användargränssnitt, eftersom det levererar filinnehållet utan sådan verbositet som avstånd eller rubriker mellan filerna, och eftersom det inte kräver att filerna ska bestå av textrader, men fungerar med någon form av data.

bland Unix kritiker, cat(1) anses vara den kanoniska exempel på dålig användargränssnitt design, på grund av dess bedrövligt unobvious namn. Det är mycket oftare används för att spränga en enda fil till standard utgång än att sammanfoga två eller flera filer., Namnet cat för den tidigare operationen är lika ointuitivt som Lisps cdr.

värdelös användning av catEdit

värdelös användning av cat (UUOC) är vanligt Unix jargong för kommandoradskonstruktioner som bara ger en funktion av bekvämlighet för användaren. Detta kallas också ”kattmissbruk”. Aktiviteten för att fixera instanser av UUOC kallas ibland demoggifiering., Exempel på en vanlig cat missbruk ges i priset:

cat filename | command arg1 arg2 argn

detta kan skrivas om med omdirigering av stdin istället, i någon av följande former (den första är mer traditionell):

 command arg1 arg2 argn < filename <filename command arg1 arg2 argn

utöver andra fördelar tillåter inmatningsomriktningsformerna kommandot att utföra slumpmässig åtkomst på filen, medan

 command arg1 arg2 argn < filename <filename command arg1 arg2 argn

div id = ”bc6147d498” >

exempel gör det inte., Detta beror på att omdirigeringsformuläret öppnar filen som stdin-fildeskriptorn vilket kommando som helt kan komma åt, medancat – formuläret helt enkelt ger data som en ström av byte.

ett annat vanligt fall där cat är onödigt är där ett kommando som standard fungerar på stdin, men kommer att läsa från en fil, om filnamnet ges som ett argument., Detta är fallet för många vanliga kommandon; följande exempel

 cat "$file" | grep "$pattern" cat "$file" | less

kan istället skrivas som

 grep "$pattern" "$file" less "$file"

en gemensam interaktiv användning avcat för en enda fil är att mata ut innehållet i en fil till standardutmatning. Om utmatningen leds eller omdirigeras är dockcat onödigt.

acat skrivet med UUOC kan fortfarande vara att föredra av läsbarhetsskäl, eftersom det kan vara lättare att konceptualisera att läsa en piped stream från vänster till höger., Dessutom kan en felaktig användning av omdirigeringssymbolen ”>” istället för ”<” (ofta intill tangentbord) permanent ta bort innehållet i en fil, med andra ord clobbering, och ett sätt att undvika detta är att använda cat med rör. Jämför:

 command < in | command2 > out <in command | command2 > out

med:

cat in | command | command2 > out

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *