Saltar al contenido principal

desarrollo · Referencia de comando

qzx compareFiles

Qué hace

Compara archivos de texto línea por línea y archivos binarios mediante bytes exactos y SHA-256.

Madurez del comando: Alpha

Disponible para uso real y retroalimentación mientras su interfaz y comportamiento todavía pueden evolucionar. Esta es la evaluación actual del checkout de desarrollo. Cada futuro tag inmutable de release conservará la evaluación exacta incluida en esa versión. Disponible en PyPI 0.2.2.0.15. La documentación corresponde al checkout alpha 0.2.2.0.15.

Comportamiento y protecciones integradas

Inspecciona sin cambiar el estado

Ejecución directa para esta operación

Funciona sin invocar programas nativos

Funciona sin usar la red

Diseñado para funcionar sin elevación

Esta clasificación de seguridad fue revisada por Claude Opus 5.5 (Anthropic) contra el digest de implementación sha256:4301a207b3295d83e9045f93e24392946d7bcc87f48dfcadac697b78455ecfb6 el 2026-10-08.

Sintaxis exacta

qzx compareFiles <file1> <file2> [mode] [max_bytes] --json

Parámetros

Desliza o usa la barra horizontal para ver todas las columnas.

NombreTipoObligatorioPredeterminadoDescripción
file1strSíNo declaradoRuta al primer archivo
file2strSíNo declaradoRuta al segundo archivo
modestrNo"full"Modo de comparación: "full" (completo), "summary" (resumen) o "percent" (porcentaje)
max_bytesintNo1048576Tamaño máximo permitido de cada archivo, en bytes (1 MiB de forma predeterminada)

Ejemplos de entrada

qzx compareFiles "file1.py" "file2.py"

Comparar dos archivos Python y mostrar todas las diferencias

qzx compareFiles "file1.txt" "file2.txt" "summary"

Mostrar un resumen de diferencias entre dos archivos de texto

qzx compareFiles "version1.js" "version2.js" "percent"

Mostrar el porcentaje de similitud entre dos archivos JavaScript

qzx compareFiles "image-a.png" "image-b.png"

Comprobar si dos archivos binarios son exactamente iguales mediante bytes y SHA-256

Para obtener la carga estructurada completa, añade --json: qzx compareFiles <file1> <file2> [mode] [max_bytes] --json

Ejemplo de salida observada

Capturado con QZX 0.2.2.0.15 en Windows 11; código de salida 0. Los valores dependientes del host y la duración pueden variar.

Comando del ejemplo: qzx compareFiles ../artifacts/qzx-evidence/compare-files/before.txt ../artifacts/qzx-evidence/compare-files/after.txt full --json

{
    "success": true,
    "file1": "../artifacts/qzx-evidence/compare-files/before.txt",
    "file2": "../artifacts/qzx-evidence/compare-files/after.txt",
    "identical": false,
    "added_lines": 1,
    "removed_lines": 1,
    "total_changes": 2,
    "diff": "Differences between '../artifacts/qzx-evidence/compare-files/before.txt' and '../artifacts/qzx-evidence/compare-files/after.txt':\n--- ../artifacts/qzx-evidence/compare-files/before.txt\n+++ ../artifacts/qzx-evidence/compare-files/after.txt\n@@ -1,2 +1,2 @@\n shared line\n-before\n+after\n\nStatistics:\n- Added lines: 1\n- Removed lines: 1\n- Total changes: 2",
    "message": "Compared '../artifacts/qzx-evidence/compare-files/before.txt' with '../artifacts/qzx-evidence/compare-files/after.txt': 1 added and 1 removed lines.",
    "content_type": "text",
    "comparison_basis": "decoded_text_lines",
    "byte_identical": false,
    "bytes_file1": 21,
    "bytes_file2": 20,
    "encoding_file1": "utf-8",
    "encoding_file2": "utf-8",
    "encoding_confidence_file1": 1,
    "encoding_confidence_file2": 1,
    "sha256_file1": "66b132726d57d857c416bf212c2ac4758f8088ffd9144b01fca3f412dd0e163a",
    "sha256_file2": "245ea69b327e3ad2ea5f90573f1a6357e076642171ad33720bd183fd7aed18f9",
    "similarity_available": true,
    "mode": "full",
    "max_bytes": 1048576,
    "meta": {
        "command": "compareFiles",
        "command_maturity": {
            "stage": "alpha",
            "label": "Alpha",
            "sequence": 2,
            "public_executable": true,
            "stability": "interface_may_change",
            "summary": "Available for real use and feedback while its interface and behavior can still evolve.",
            "promotion_review_required": false,
            "assessment_scope": "development_checkout"
        },
        "duration_ms": 5.065,
        "schema_version": 1
    }
}
Ver el contrato de resultado JSON
{
    "type": "object",
    "properties": {
        "success": {
            "type": "boolean"
        },
        "message": {
            "type": "string"
        },
        "error": {
            "type": "string"
        },
        "error_code": {
            "type": "string"
        },
        "remediation": {
            "type": "string"
        },
        "file1": {
            "type": "string"
        },
        "file2": {
            "type": "string"
        },
        "mode": {
            "type": "string",
            "enum": [
                "full",
                "summary",
                "percent"
            ]
        },
        "identical": {
            "type": "boolean"
        },
        "added_lines": {
            "type": "integer"
        },
        "removed_lines": {
            "type": "integer"
        },
        "total_changes": {
            "type": "integer"
        },
        "diff": {
            "type": "string"
        },
        "similarity": {
            "type": "number"
        },
        "lines_file1": {
            "type": "integer"
        },
        "lines_file2": {
            "type": "integer"
        },
        "identical_lines": {
            "type": "integer"
        },
        "changes": {
            "type": "integer"
        },
        "summary": {
            "type": "string"
        },
        "content_type": {
            "type": "string",
            "enum": [
                "text",
                "binary"
            ]
        },
        "comparison_basis": {
            "type": "string"
        },
        "byte_identical": {
            "type": "boolean"
        },
        "bytes_file1": {
            "type": "integer"
        },
        "bytes_file2": {
            "type": "integer"
        },
        "max_bytes": {
            "type": "integer"
        },
        "encoding_file1": {
            "type": [
                "string",
                "null"
            ]
        },
        "encoding_file2": {
            "type": [
                "string",
                "null"
            ]
        },
        "encoding_confidence_file1": {
            "type": [
                "number",
                "null"
            ]
        },
        "encoding_confidence_file2": {
            "type": [
                "number",
                "null"
            ]
        },
        "sha256_file1": {
            "type": "string"
        },
        "sha256_file2": {
            "type": "string"
        },
        "similarity_available": {
            "type": "boolean"
        },
        "meta": {
            "type": "object",
            "required": [
                "command",
                "command_maturity",
                "duration_ms",
                "schema_version"
            ],
            "properties": {
                "command": {
                    "type": "string"
                },
                "command_maturity": {
                    "type": "object",
                    "required": [
                        "stage",
                        "label",
                        "sequence",
                        "public_executable",
                        "stability",
                        "summary",
                        "promotion_review_required",
                        "assessment_scope"
                    ],
                    "properties": {
                        "stage": {
                            "type": "string"
                        },
                        "label": {
                            "type": "string"
                        },
                        "sequence": {
                            "type": "integer"
                        },
                        "public_executable": {
                            "type": "boolean"
                        },
                        "stability": {
                            "type": "string"
                        },
                        "summary": {
                            "type": "string"
                        },
                        "promotion_review_required": {
                            "type": "boolean"
                        },
                        "assessment_scope": {
                            "type": "string"
                        },
                        "note": {
                            "type": "string"
                        },
                        "review": {
                            "type": "object",
                            "required": [
                                "reviewed_on",
                                "rationale",
                                "evidence"
                            ],
                            "properties": {
                                "reviewed_on": {
                                    "type": "string",
                                    "format": "date"
                                },
                                "rationale": {
                                    "type": "string"
                                },
                                "evidence": {
                                    "type": "array",
                                    "minItems": 1,
                                    "items": {
                                        "type": "string"
                                    }
                                },
                                "replacement": {
                                    "type": "string"
                                }
                            },
                            "additionalProperties": false
                        }
                    },
                    "additionalProperties": true
                },
                "duration_ms": {
                    "type": "number"
                },
                "schema_version": {
                    "type": "integer"
                }
            },
            "additionalProperties": true
        }
    },
    "additionalProperties": true,
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "required": [
        "message",
        "meta",
        "success"
    ]
}

Errores y límites

El contrato público exige success=false y un message descriptivo en fallos. Este catálogo aún no declara una taxonomía de errores específica para cada comando; revisa el resultado y no infieras códigos inexistentes.

QZX está en alpha. Dependencias opcionales, permisos y capacidades del host pueden cambiar el resultado.

Flujo de evidencia: capturada y validada por digest.

Evidencia y procedencia

Canal de documentación
Documentación de desarrollo 0.2.2.0.15 · main · sha256:b91acee86268edb7cb018a94e089ff8e95835eda3f2cf08b39796c0ab9654693
Disponibilidad
0.2.2.0.15 o anterior

Sigue explorando

Estos comandos también pertenecen a la categoría de desarrollo. Compáralos para elegir la operación que mejor resuelva tu tarea.

Explorar todos los comandos de QZX