cat (Unix)

Kot

Image Description Cpuinfo about Intel Celeron M 410.png. Informacja
Rodzaj Narzędzie UNIX ( d )

cat , który pochodzi z angielskiego catenate , synonimu concatenate (tj. "  concatenate  "), jeststandardowym poleceniem uniksowym umożliwiającym konkatenację plików, a także wyświetlanie ich zawartości na standardowym wyjściu - zwykle terminalu Unix  ; najczęściej „  muszle  ”, w szczególności Bash , zsh , Csh itp.

tac  (en) jest odpowiednikiem cat, ale wyświetla zawartość pliku od końca do początku .

W systemach Microsoft jego odpowiednikiem jest polecenie type  (en) .

Przykłady

Aby wyświetlić plik:

cat fichier.txt

Aby wyświetlić dwa połączone pliki:

cat fichier1.txt fichier2.txt

Specyfikacja

Pojedyncza specyfikacja UNIX ” (standardowa specyfikacja UNIX ) określa, że ​​zachowanie polecenia spowoduje wyświetlenie zawartości każdego pliku podanego w argumencie na standardowym wyjściu w pojedynczej sekwencji. W przypadku użycia z opcją „ -u ” (nieużywana przez GNU), polecenie to wyświetla każdy oktet (bajt angielski) zaraz po jego odczytaniu bez użycia bufora (bufora).

Jeśli zastosowana zostanie opcja „ - ”, cat odczyta standardowe wejście (przykład: klawiatura) i wyświetli je w sekwencji wyjściowej. Jeśli nie ma pliku jako argumentu, cat czyta ze standardowego wejścia.

cat umożliwia zatem szybkie i pasywne wyświetlanie zawartości pliku.

Można napotkać różne błędy:

- Odmowa pozwolenia (jeśli użytkownik nie ma prawa do odczytu pliku)

- Jest katalogiem (jeśli użytkownik próbuje odczytać folder)

- Operacja nie jest obsługiwana (jeśli akcja nie jest możliwa z innego powodu)

Rozszerzenia

Obie wersje BSD i wersja GNU coreutils programu cat obsługują następujące opcje:

  • -b (tylko GNU: --number-nonblank ), numeruje niepuste wiersze na wyjściu.
  • -n (tylko GNU: --numer ), numeruje linie wyjściowe.
  • -s (tylko GNU: --squeeze-blank ), połącz wszystkie następujące puste wiersze w jeden.
  • -v (tylko GNU: --show-nonprinting ), wyświetla niedrukowalne znaki tak, jakby były widoczne, z wyjątkiem tabulatorów i znaków końca linii (EOL: End Of Line).
  • -t BSD lub -T GNU ma takie samo zachowanie jak -v , ale również pokazuje zakładkach jak ^ ja .
  • -e z BSD lub -E z GNU zachowuje się tak samo jak -v, ale wyświetla również znaki końca linii jako $ .

Trochę kultury uniksowej

Definicja żargonu związanego z plikami

„  Plik żargonu  ” w wersji 4.3.3 definiuje polecenie cat w następujący sposób:

  1. Służy do wyświetlania, bez zatrzymywania, całego pliku na ekranie lub na innym standardowym wyjściu.
  2. W związku z tym służy do wysyłania dużej ilości danych do nieprzygotowanego celu lub bez zamiaru ich uważnego czytania. W związku z tym zamówienie jest uważane za ograniczone.

Dla fanów Uniksa cat jest uważany za najlepszy przykład tego, czym   jest projekt " interfejsu użytkownika ", ponieważ z jednej strony zapewnia zawartość pliku bez nieoczekiwanych znaków uzupełniających, takich jak spacje lub separatory. Między plikami i, z drugiej strony nie wymaga, aby plik składał się z wierszy tekstu, ale działa z każdym typem danych.

Dla krytyków Uniksa cat jest uważany za archetyp złego   projektu " interfejsu użytkownika ", ponieważ jego nazwa jest szczególnie źle dobrana. Rzeczywiście, polecenie to jest używane znacznie częściej do wyświetlania pojedynczego pliku na standardowym wyjściu niż do łączenia kilku plików. W rzeczywistości nazwa cat jest zatem tak samo nieintuicyjna, jak na przykład nazwa polecenia cdr w Lispie , którego celem jest wyodrębnienie wskaźnika.

Cat i UUOC

UUOC , wyodrębnij comp.unix.shell w Usenecie , oznacza „Bezużyteczne użycie kota  ” (tj .: niepotrzebne użycie kota ). Jak zauważyli niektórzy z comp.unix.shell , celem polecenia cat jest konkatenacja plików. Jeśli jest używany tylko w jednym pliku, jest to strata czasu i niepotrzebne obciążenie zasobów: „Celem cat jest łączenie (lub 'catenate') plików. Jeśli jest to tylko jeden plik, łączenie go z niczym jest stratą czasu i kosztuje cały proces »

Przykłady UUOC

Widzimy, że robisz:

cat file | autres_commandes avec leurs arguments

zamiast :

<file autres_commandes avec leurs arguments

lub bardziej klasycznie:

autres_commandes avec leurs arguments <file

które robią to samo, ale są mniej kosztowne pod względem zasobów.

Od 1995 roku okazjonalnie przyznawane są nagrody za najlepsze bezużyteczne zastosowania kotów (UUOC). Często zdarza się, że nagrody te przyznaje Randal L. Schwartz  (en) , autor wielu książek o Perlu i konsultant ds. Programowania. Istnieje również strona internetowa poświęcona wyłącznie Nagrodom UUOC i innym podobnym nagrodom.

Dla hakerów , aktywność usuwania UUOC jest czasami nazywany demoggification ( „Moggy” jest to termin z języka angielskiego w Rzeczypospolitej czule wyznaczaniu kota domowego, „kot”).

Linki zewnętrzne

Instrukcje