definicja pliku Żargonedit
plik żargon w wersji 4.4.7 wymienia to jako definicję cat
:
- aby wypluć cały plik na ekran lub inne wyjście bez pauzy (syn. blast).
- przez rozszerzenie, aby zrzucić duże ilości danych na nieprzygotowany cel lub bez zamiaru przeglądania go uważnie. Sposób użycia: uważany za głupi. Rzadko spotykane poza Uniksami. Zobacz też: dd, BLT.,
wśród fanów Uniksa, cat(1) jest uważany za doskonały przykład projektowania interfejsu użytkownika, ponieważ dostarcza zawartość pliku bez odstępów lub nagłówków między plikami, a także dlatego, że nie wymaga, aby pliki składały się z linii tekstu, ale działają z wszelkimi rodzajami danych.
wśród krytyków Uniksa cat(1) jest uważany za kanoniczny przykład złego projektu interfejsu użytkownika, ze względu na jego żałośnie nieoczywistą nazwę. Jest on znacznie częściej używany do wysyłania pojedynczego pliku na standardowe wyjście niż do łączenia dwóch lub więcej plików., Nazwa cat dla poprzedniej operacji jest tak samo nieintuicyjna jak, powiedzmy, cdr w Lispie.
bezużyteczne użycie catEdit
bezużyteczne użycie cat (uuoc) jest powszechnym żargonem uniksowym dla konstrukcji wiersza poleceń, które zapewniają tylko funkcję wygodną dla użytkownika. Jest to również określane jako „Cat abuse”. Działanie naprawiania instancji UUOC jest czasami nazywane demoggifikacją., Przykład powszechnego cat
nadużycie jest podane w nagrodzie:
cat filename | command arg1 arg2 argn
można to przepisać za pomocą przekierowania stdin zamiast, w jednej z następujących form (pierwsza jest bardziej tradycyjna):
command arg1 arg2 argn < filename <filename command arg1 arg2 argn
poza innymi korzyściami, wejście formularze przekierowań umożliwiają polecenie wykonywania losowego dostępu do pliku, podczas gdy przykłady cat
nie., To dlatego, że formularz przekierowania otwiera plik jako deskryptor pliku stdin, do którego polecenie może w pełni uzyskać dostęp, podczas gdycat
formularz po prostu dostarcza dane jako strumień bajtów.
Innym częstym przypadkiem, w którymcat
jest niepotrzebne, jest sytuacja, w której polecenie domyślnie działa na standardowym wejściu, ale będzie odczytywane z pliku, jeśli nazwa pliku jest podana jako argument., Tak jest w przypadku wielu popularnych poleceń; następujące przykłady
cat "$file" | grep "$pattern" cat "$file" | less
można zamiast tego zapisać jako
grep "$pattern" "$file" less "$file"
powszechnym interaktywnym użyciem cat
dla pojedynczego pliku jest wyjście zawartości pliku na standardowe wyjście. Jeśli jednak wyjście jest przekierowane lub przekierowane, cat
jest niepotrzebne.
acat
napisany za pomocą UUOC może być nadal preferowany ze względu na czytelność, ponieważ odczyt strumieniowego strumienia od lewej do prawej może być łatwiejszy do konceptualizacji., Ponadto, niewłaściwe użycie symbolu przekierowania „>” zamiast „<” (często sąsiadujące z klawiaturą) może trwale usunąć zawartość pliku, innymi słowy zatykać, a jednym ze sposobów uniknięcia tego jest użycie cat
z rurami. Porównaj:
command < in | command2 > out <in command | command2 > out
z:
cat in | command | command2 > out