Jargon file definitionEdit
El Jargon File version 4.4.7 enumera esto como la definición de cat
:
- para arrojar un archivo completo a la pantalla o a algún otro sumidero de salida sin pausa (syn. explosión).
- Por extensión, para volcar grandes cantidades de datos en un destino no preparado o sin intención de navegar con cuidado. Usage: considerado tonto. Raro fuera de los sitios Unix. See also DD, BLT.,
entre los fanáticos de Unix, cat(1) es considerado un excelente ejemplo de diseño de interfaz de usuario, porque entrega el contenido del archivo sin tal detalle como espaciado o encabezados entre los archivos, y porque no requiere que los archivos consistan en líneas de texto, sino que funciona con cualquier tipo de datos.
entre los críticos de Unix, cat(1) es considerado el ejemplo canónico de mal diseño de interfaz de usuario, debido a su nombre lamentablemente poco visible. Se utiliza mucho más a menudo para volcar un solo archivo a la salida estándar que para concatenar dos o más archivos., El nombre cat para la operación anterior es tan poco intuitivo como, por ejemplo, cdr de LISP.
Useless use of catEdit
Useless use of cat (UUOC) es una jerga Unix común para construcciones de línea de comandos que solo proporcionan una función de conveniencia para el usuario. Esto también se conoce como»abuso del gato». La actividad de arreglar instancias de UUOC a veces se llama demoggificación., Ejemplo de un abuso común cat
se da en el premio:
cat filename | command arg1 arg2 argn
esto se puede reescribir utilizando la redirección de stdin en su lugar, en cualquiera de las siguientes formas (la primera es más tradicional):
command arg1 arg2 argn < filename <filename command arg1 arg2 argn
Más allá de otros beneficios, los formularios de redirección permiten que el comando realice acceso aleatorio en el archivo, mientras que los ejemplos cat
no lo hacen., Esto se debe a que el formulario de redirección abre el archivo como el descriptor de archivo stdin al que el comando puede acceder completamente, mientras que el formulario cat
simplemente proporciona los datos como un flujo de bytes.
otro caso común donde cat
es innecesario es cuando un comando por defecto opera en stdin, pero leerá desde un archivo, si el nombre del archivo se da como argumento., Este es el caso de muchos comandos comunes; los siguientes ejemplos
cat "$file" | grep "$pattern" cat "$file" | less
se pueden escribir como
grep "$pattern" "$file" less "$file"
un uso interactivo común de cat
para un solo archivo es enviar el contenido de un archivo a la salida estándar. Sin embargo, si la salida se canaliza o redirige, cat
no es necesario.
a cat
escrito con UUOC todavía podría ser preferido por razones de legibilidad, ya que leer una secuencia canalizada de izquierda a derecha podría ser más fácil de conceptualizar., Además, un uso incorrecto del símbolo de redirección «>» en lugar de «<» (a menudo adyacente en los teclados) puede eliminar permanentemente el contenido de un archivo, en otras palabras clobbering, y una forma de evitar esto es usar cat
con tuberías. Comparar:
command < in | command2 > out <in command | command2 > out
por:
cat in | command | command2 > out