
El comando cat de Linux es una de esas herramientas que usas todos los días sin pensar en ello. Entonces, un día te das cuenta de que solo conoces el 20% de lo que hace. Aquí está el otro 80%.
¿Qué es el comando cat de Linux?
cat significa «concatenate» (concatenar). Su propósito original era unir archivos, pero se ha convertido en el comando preferido para ver rápidamente el contenido de archivos. Lee uno o más archivos y los escribe en la salida estándar, que puedes ver en la terminal o redirigir a otro lugar.
Dónde encaja cat en el trabajo diario de Linux
Usarás cat cuando necesites leer rápidamente un archivo de configuración, revisar un fragmento de un registro o verificar que un archivo se haya escrito correctamente. Para archivos largos, es mejor usar less o more. cat es para archivos cortos donde quieres todo de una vez, sin paginación.
Sintaxis del comando cat
cat [OPTIONS] [FILENAME...]Sin un nombre de archivo, cat lee desde la entrada estándar hasta que presionas Ctrl+D. Con uno o más nombres de archivo, los lee e imprime en orden.
Cómo usar el comando cat
Mostrar contenido de archivos
El uso más común es:
cat /etc/hostnamecat /var/log/syslogPara múltiples archivos, cat los muestra secuencialmente en el orden proporcionado.
Concatenar múltiples archivos
Esto es para lo que cat fue diseñado realmente. Combinar archivos en uno:
cat file1.txt file2.txt > combined.txtEl > redirige la salida combinada a un nuevo archivo. Sin él, el contenido combinado se imprime en la terminal.
Agregar números de línea con -n
La opción -n numera todas las líneas de salida, lo cual es útil cuando necesitas referenciar líneas específicas en archivos de configuración o scripts:
cat -n /etc/nginx/nginx.confLa opción -b numera solo las líneas no vacías, si quieres omitir las líneas en blanco.
Suprimir líneas en blanco con -s
La opción -s comprime varias líneas en blanco consecutivas en una sola línea en blanco. Útil con archivos de configuración detallados o salidas de logs que tienen demasiado espacio en blanco:
cat -s verbose_config.txtMostrar caracteres no imprimibles con -A
La opción -A muestra tabulaciones como ^I y los finales de línea como caracteres $. Esto es muy útil al depurar archivos con formato de Windows subidos a un servidor Linux, donde los retornos de carro ocultos (^M) rompen los scripts:
cat -A script.shSi ves ^M al final de cada línea, el archivo tiene finales de línea de Windows. Corrígelo con dos2unix.
Crear y agregar a archivos con cat
Crear un nuevo archivo
Usa cat con redirección y un heredoc para crear un archivo interactivamente:
cat > newfile.txtEscribe tu contenido y luego presiona Ctrl+D para guardar y salir. El archivo se crea con lo que escribiste.
Agregar a un archivo existente
Usa >> en lugar de > para agregar sin sobrescribir:
cat >> existing.txtEscribe nuevo contenido, Ctrl+D para terminar. Esto agrega al final del archivo.
cat con pipes y redireccionamientos
cat funciona bien como inicio de un pipeline cuando quieres pasar el contenido de un archivo a otro comando:
cat access.log | grep "404" | wc -lDicho esto, muchos comandos aceptan nombres de archivo directamente (por ejemplo, grep «404» access.log), lo que hace innecesario usar cat. Es una elección de estilo entre legibilidad y eficiencia.
Cuándo NO usar cat: uso indebido común
El “uso inútil de cat” es algo real en los círculos de scripting en Linux. Piping cat en comandos que pueden leer archivos directamente agrega un proceso innecesario:
- cat file.txt | grep pattern → usa grep pattern file.txt en su lugar
- cat file.txt | head -20 → usa head -20 file.txt en su lugar
- cat file.txt | wc -l → usa wc -l file.txt en su lugar
No es que estén mal, pero suponen una sobrecarga innecesaria. En archivos grandes o en bucles ajustados, se suma.
FAQ: Comando cat de Linux
cat lee uno o más archivos y escribe su contenido en la salida estándar. Puedes ver archivos en el terminal, concatenar varios archivos o redirigir la salida a nuevos archivos.
Usa cat -n nombre_archivo. Esto numera cada línea en la salida. Usa -b en su lugar para numerar solo las líneas no vacías.
Ejecuta: cat archivo1.txt archivo2.txt > combinado.txt. Esto combina ambos archivos en combinado.txt en el orden especificado.
cat muestra todo el archivo de una vez. less y more dividen la salida en páginas para que puedas desplazarte por ella. Usa cat para archivos cortos, less para archivos largos.