Ir al contenido
GitHub

Archivos, tareas y visores

Ctrl-S abre la búsqueda rápida. Escribe un nombre o un patrón glob como *.rs; Down y Up se mueven entre las coincidencias, Insert marca una coincidencia, Ctrl-A las marca todas, y Enter o Esc cierran la búsqueda. No se distinguen mayúsculas y minúsculas salvo que la consulta contenga mayúsculas.

F5, F6 y F8 inician tareas de copia, movimiento y eliminación. Alt-J abre la lista de tareas, donde puedes pausarlas o cancelarlas.

El diálogo Eliminar empieza en No, así que Enter por sí solo conserva los archivos. Para eliminarlos, pulsa Y, o pasa a Sí con Tab o una tecla de flecha y pulsa Enter.

Mientras el diálogo Eliminar pregunta, Borg cuenta los archivos que vas a quitar y muestra su número y su tamaño debajo de la pregunta. El recuento se detiene a los 3 segundos, y entonces la línea empieza por Al menos. Borg también busca los programas que tienen esos archivos abiertos, se ejecutan desde ellos o trabajan en una de esas carpetas, y muestra sus nombres. Un programa que mantiene abierto un archivo eliminado conserva también su espacio en disco hasta que lo cierra. Pulsa K para abrir el monitor de actividad en el primero de ellos con Señal o prioridad, y detenlo antes de eliminar. Borg ve los programas que tu usuario puede inspeccionar, que en la mayoría de los sistemas son los tuyos. Los archivos de archivos comprimidos, contenedores y paneles remotos se eliminan sin estas comprobaciones.

El diálogo Copiar tiene una casilla Optimizar la copia para discos duros. Pulsa Tab para llegar a ella y Space para marcarla o desmarcarla, o haz clic en ella. Está desmarcada en cada copia nueva. En este modo, Borg lee los archivos pequeños en memoria por lotes y luego escribe cada lote, lo que puede reducir los desplazamientos del cabezal al copiar dentro de un mismo disco duro. Un lote contiene hasta 64 MiB de datos o 4096 archivos; los archivos de más de 1 MiB se copian de la forma habitual. Cuánto ayuda depende del disco, del sistema de archivos y de la caché del sistema operativo, y puede ser más lento al copiar entre discos distintos. Cuando ya existe un archivo con el mismo nombre: o sobrescribe, s omite, k conserva ambos, a sobrescribe todos, n omite todos y Esc cancela. Las copias se escriben en archivos temporales y se renombran cuando están completas.

Borg sabe en qué tipo de disco está cada carpeta: un disco duro, un SSD, un disco en RAM, un recurso compartido de red como NFS, SMB o sshfs, o la máquina que muestra un panel remoto. En macOS consulta a diskutil y hdiutil, y en Linux lee /proc/self/mountinfo y los indicadores del dispositivo en /sys. Ctrl-L muestra el disco y su sistema de archivos en la fila Disco, y la fila Velocidad dice a qué velocidad espera Borg que lea y escriba.

Antes de que una tarea escriba nada, Borg calcula cuánto tardará a partir de los bytes que lee y escribe en cada disco y del tiempo que lleva comprimir. Cuando una copia, un movimiento a otro disco o una descompresión tardaría más de 2 minutos, o un cambio en un archivo comprimido más de 20 segundos, el diálogo Tarea larga dice cuánto tardará aproximadamente y en qué tipo de disco, y espera:

  • Empezar (s) ejecuta la tarea.
  • Siempre para este archivo (f) la ejecuta y deja de preguntar por este archivo comprimido. La descompresión y los cambios en un archivo comprimido ofrecen esta opción.
  • Siempre en este tipo de disco (d) la ejecuta y deja de preguntar por el trabajo en discos de este tipo.
  • Cancelar (c) se detiene antes de la primera escritura.

Al guardar desde el editor en un archivo comprimido, la pregunta aparece encima del editor, que recupera las teclas en cuanto respondes.

Mientras Borg no haya medido un disco, cuenta con la velocidad habitual de su tipo: unos 120 MB/s para un disco duro, 900 MB/s para un SSD, 4 GB/s para un disco en RAM, 60 MB/s para un recurso compartido de red y 10 MB/s para una máquina remota. Cada tarea que dura al menos 2 segundos y mueve al menos 64 MiB le enseña a Borg la velocidad real del disco, y entonces la fila Disco dice velocidad medida. Una tarea que pasa su tiempo comprimiendo no le enseña nada sobre el disco.

Borg guarda las velocidades y tus respuestas en drives.json, en su carpeta de estado, con hasta 256 archivos comprimidos. Solo tú puedes leer el archivo, porque nombra los archivos comprimidos sobre los que respondiste. Todos los Borg que tengas abiertos lo comparten: cada uno lo lee al arrancar y otra vez justo antes de escribir, así que lo que un Borg aprendió o le dijiste se mantiene cuando otro escribe. La fila Tareas largas de Ctrl-L dice si Borg pregunta primero en ese disco. F9 → Opciones → Volver a preguntar antes de tareas largas olvida todas las respuestas Siempre, también las dadas en otros Borg. Un Borg que ya esté abierto conserva las respuestas que tiene hasta que vuelva a escribir el archivo o lo inicies de nuevo.

F3 abre el visor. Con el complemento Sistema activado, F3 sobre un archivo .pcap, .pcapng o .cap abre en su lugar el visor de tráfico de la pantalla de red (consulta Capturar tráfico). En los archivos de texto, las flechas y PgUp/PgDn desplazan, w activa o desactiva el ajuste de línea, y Esc o q lo cierran. En las imágenes, Left/Right o p/n muestran la imagen anterior o la siguiente. Borg usa el protocolo de imágenes del terminal cuando lo hay; los demás terminales muestran la imagen como bloques de colores.

Ctrl-Q muestra una vista previa rápida en el otro panel. Tab entra en ella, donde las flechas, PgUp/PgDn, Home/End y la rueda del ratón desplazan; Tab o Esc vuelven a la lista de archivos. Ctrl-L muestra la información del archivo. F3 abre una vista previa de texto en el visor completo, y al cerrar el visor se vuelve a la vista previa conservando la posición, el ajuste de línea, el modo de código fuente y las filas hexadecimales. Ambos leen los archivos de la misma forma limitada, así que abrir un archivo de texto grande solo lee aproximadamente la primera página y es rápido sea cual sea su tamaño. En un resultado de una búsqueda de texto, la vista previa se abre en cambio en la primera coincidencia del archivo, con la consulta marcada como la marca la barra de búsqueda, y solo lee alrededor de esa coincidencia.

Los dos visores de texto resaltan los lenguajes de programación, de marcado y los archivos de configuración más comunes, entre ellos Rust, Python, JavaScript, TypeScript/TSX, Go, C/C++, Java, C#, Ruby, PHP, Lua, SQL, HTML/CSS, JSON, YAML, TOML, scripts de shell y Dockerfiles. Markdown se abre con formato por defecto; pulsa s o F4 en cualquiera de los dos visores para ver el código fuente. Se admiten encabezados, énfasis, listas, listas de tareas, enlaces, tablas y bloques de código delimitados. Los archivos Markdown de más de 2 MiB se abren como código fuente para limitar el uso de memoria.

JSON se abre organizado con un valor por línea, con las claves en su orden original y los números exactamente como están escritos, lo que ayuda sobre todo con archivos escritos en una sola línea. Pulsa s o F4 para ver el archivo tal como está escrito. Los archivos JSON Lines (.jsonl, .ndjson) se organizan registro a registro. El JSON de más de 16 MiB, o que no se puede analizar, se abre tal como está escrito.

Pulsa h en el visor de texto o en la vista previa para ver los bytes del archivo en filas hexadecimales y vuelve a pulsarla para volver al texto. Un archivo binario, que Borg reconoce por un byte a cero en sus primeros 4 KiB, se abre en filas hexadecimales en ambos, y h muestra su texto. Cada fila empieza con su posición en el archivo y luego muestra sus bytes en hexadecimal y los mismos bytes como texto, con un punto en cada byte que no se puede imprimir. Las posiciones y los bytes a cero se ven atenuados. Una fila tiene tantos bytes como quepan en el ancho: 64, 32, 16, 8, 4, 2 o 1, con un espacio más ancho después de cada octavo byte. Borg lee solo las filas que hay en pantalla, así que las flechas, PgUp/PgDn, Space, Home y End recorren al instante un archivo de varios gigabytes. La barra de búsqueda también funciona en las filas hexadecimales y marca cada coincidencia en las dos columnas. En hexadecimal, los archivos Markdown y JSON muestran los bytes tal como están escritos.

En el visor, una franja de entropía recorre el borde derecho de las filas hexadecimales. La entropía indica lo variados que son los bytes, desde 0 bits por byte para un solo byte repetido hasta 8 para bytes tan aleatorios como los datos comprimidos, cifrados o empaquetados. El texto suele rondar 4,5, y el código, entre 5 y 6,5. La franja cubre todo el archivo de arriba abajo. La barra de cada celda es tan larga como la entropía más alta de su parte del archivo, atenuada por debajo de 4 bits por byte y en rojo y negrita desde 7,2, y las celdas de los bytes que hay en pantalla se marcan como en una barra de desplazamiento. La línea de estado muestra la entropía en la página y si es baja, típica o alta. Pulsa ] y [ para saltar a la siguiente o a la anterior serie de bloques de entropía alta, o haz clic en la franja para ir a esa parte del archivo.

Borg lee la entropía en segundo plano, en bloques de 4 KiB. Un archivo de hasta 256 MiB se lee entero, y uno mayor se muestrea en 65 536 bloques repartidos por igual, así que la memoria que usa es la misma sea cual sea su tamaño. Una entropía alta donde esperarías código, cabeceras o tablas puede indicar datos empaquetados o cifrados escondidos ahí. La multimedia comprimida, los archivos comprimidos, los volúmenes cifrados y los almacenes de claves tienen entropía alta de principio a fin, así que interpreta la franja según lo que debería contener el archivo.

Pulsa Enter sobre un archivo comprimido para abrirlo como una carpeta. Borg abre los archivos cuyo nombre termina en .zip, .7z, .rar, .tar, .tar.gz, .tgz, .tar.bz2, .tbz2, .tbz, .tar.xz, .txz, .tar.zst o .tzst, y los archivos comprimidos sueltos que terminan en .gz, .bz2, .xz o .zst, que se abren como una carpeta con ese único archivo. Ctrl-PgDn también abre un archivo comprimido, y F3 sobre el propio archivo comprimido sigue mostrando sus bytes en el visor. El título del panel muestra una marca como ▤ zip con el formato que Borg encontró en los primeros bytes del archivo, y la ruta continúa dentro del archivo comprimido. Las carpetas de dentro muestran el tamaño de lo que contienen. Left, Enter en .. o Ctrl-PgUp en la raíz del archivo comprimido te devuelven a la carpeta que lo contiene, con el cursor sobre él. Si el archivo comprimido se borró o ya no se puede leer, subir desde cualquiera de sus carpetas también te devuelve allí, y el aviso dice por qué.

Para listar un archivo comprimido, Borg lee lo que contiene, lo que en un tar comprimido significa leer el archivo entero. Mientras lee uno grande, el pie del panel muestra hasta dónde ha llegado Borg, y Esc detiene la lectura y vuelve atrás. Borg recuerda los listados de los últimos 4 archivos comprimidos mientras conserven el mismo tamaño y la misma fecha, así que entrar y salir de nuevo es instantáneo. Los archivos comprimidos con más de 1.000.000 de entradas no se abren.

F3 o Enter sobre un archivo de dentro lo descomprime en una carpeta privada dentro de la carpeta de ejecución de Borg y lo abre en el visor. La descompresión se ejecuta como una tarea, así que un archivo grande muestra su progreso, y Esc la cancela. Borg borra el archivo descomprimido en cuanto el visor lo tiene abierto.

F4 sobre un archivo de dentro lo abre en el editor, y Alt-E lo abre en el editor del panel. Borg descomprime el archivo en la misma carpeta privada, y el título del editor muestra su ruta dentro del archivo comprimido. Cada vez que guardas, el archivo vuelve a escribirse en el archivo comprimido como una tarea, y el editor lo avisa (“Guardado. Escribiéndolo en site.zip.”). Si el archivo comprimido no lo acepta, el aviso dice por qué y dónde queda tu edición.

F5 copia los archivos y carpetas marcados fuera del archivo comprimido, a la carpeta del otro panel o a la carpeta que escribas en el diálogo Copiar. Extraer aquí y Extraer en el otro panel, en el menú Archivo (F2), descomprimen el archivo comprimido entero bajo el cursor en la carpeta de este panel o en la del otro. En ambos casos los archivos llegan a una carpeta de esta máquina, y la tarea aparece en Alt-J con su progreso, su velocidad y el tiempo restante. Pregunta por los nombres que ya existen igual que una copia, escribe cada archivo con un nombre temporal hasta que está completo y detiene cada archivo en el tamaño que le asigna el archivo comprimido.

Borg modifica archivos zip, 7z y tar, con compresión o sin ella. F5 o F6 desde una carpeta de esta máquina copia o mueve los archivos marcados al archivo comprimido que muestra el otro panel, o a la carpeta de él que escribas en el diálogo. F7 crea una carpeta en el archivo comprimido, y F8 borra las entradas marcadas después de preguntar. F6 hacia un nombre del mismo archivo comprimido cambia el nombre de las entradas o las mueve allí, y F6 hacia una carpeta de esta máquina las saca: se descomprimen allí y luego salen del archivo comprimido. Cuando un nombre ya existe en el archivo comprimido, Borg pregunta igual que una copia, y también pregunta cuando dos de los archivos que copias comparten nombre, como puede pasar con archivos de resultados de búsqueda o de una colección. Un cambio de nombre a un nombre que el archivo comprimido ya tiene se detiene con un aviso. Un movimiento solo borra lo que llegó entero, así que un archivo que omites se queda donde estaba, igual que uno que reemplazó otro archivo posterior con el mismo nombre.

Cada cambio se ejecuta como una tarea en Alt-J. Borg escribe el archivo comprimido modificado junto al original con un nombre temporal, lo vuelve a leer y solo entonces lo pone en el lugar del original con los mismos permisos. La relectura comprueba la lista de entradas de un zip o un 7z y cada entrada de un tar. Un archivo entra tal como está cuando Borg lo escribe, así que un archivo que vuelves a guardar mientras la tarea espera tu respuesta entra con su contenido más reciente. Un cambio que falla o que cancelas deja el archivo comprimido como estaba. Las entradas que el cambio conserva se copian tal como están guardadas: un zip copia sus datos comprimidos, y un 7z copia cada bloque sólido que conserva todas sus entradas y vuelve a comprimir solo los bloques que pierden alguna. Un tar comprimido se descomprime y se vuelve a comprimir entero, y se descomprime una vez más para releerlo, así que cambiar un .tar.xz grande tarda casi lo mismo que crearlo y descomprimirlo. Un zip o un tar sin comprimir que solo gana entradas se copia y las entradas nuevas van detrás de la última, y en APFS, Btrfs, XFS y bcachefs esa copia es instantánea. Antes de un cambio que tardaría mucho, Borg pregunta primero (consulta Tareas largas y discos).

En un archivo zip o 7z cifrado, las entradas nuevas se cifran con AES-256 y con la contraseña con la que abriste el archivo comprimido, y un 7z que oculta su lista de entradas la sigue ocultando. Las entradas que el cambio conserva quedan como estaban.

Los archivos RAR y los archivos comprimidos sueltos como .gz siguen siendo de solo lectura, y al intentar cambiarlos Borg lo avisa. Ctrl-Q y Comprimir… no funcionan dentro de un archivo comprimido. Un archivo comprimido dentro de otro se abre cuando lo copias fuera. El shell se queda en la carpeta que contiene el archivo comprimido, y una sesión guardada vuelve a abrir esa carpeta con el cursor sobre él.

Los archivos zip y 7z cifrados piden la contraseña al abrirse. En el diálogo Contraseña, cada carácter que escribes aparece como ruido de interferencia que cambia sin parar y destella con cada tecla. El ruido depende solo de cuántos caracteres has escrito. El diálogo vuelve a preguntar si la contraseña es incorrecta, y Esc sale del archivo comprimido. Borg guarda la contraseña en memoria mientras el panel muestra el archivo comprimido y nunca la escribe en ningún sitio. Extraer aquí no puede pedirla, así que para un archivo comprimido cifrado pulsa Enter sobre él, escribe la contraseña y copia los archivos fuera con F5.

Antes de escribir nada, Borg suma lo que ocupan las entradas elegidas una vez descomprimidas y pregunta primero cuando pasan de 1 GiB y de 100 veces el tamaño del archivo comprimido, o de 100.000 archivos, que es el aspecto de una bomba zip. También pregunta cuando el destino tiene menos espacio libre del que necesitan los archivos, y un cambio en un archivo comprimido pregunta cuando su disco no tiene sitio para el nuevo archivo comprimido junto al antiguo. Descomprimir de todos modos (u) sigue adelante, y Cancelar se detiene antes del primer archivo. Las entradas con rutas absolutas, con .. en la ruta o que son archivos de dispositivo se omiten con un aviso, y ninguna entrada ni enlace de un archivo comprimido puede hacer que Borg escriba fuera de la carpeta de destino.

Borg lee por sí mismo zip, 7z y la familia tar. Los archivos RAR pasan por 7-Zip (7zz o 7z) o por bsdtar, el que Borg encuentre primero, y macOS ya trae bsdtar. Si no hay ninguno instalado, Enter sobre un archivo RAR ofrece instalar bsdtar. El diálogo Instalar bsdtar funciona como el de tcpdump en Capturar tráfico: muestra el comando exacto para tu gestor de paquetes, y Enter lo escribe en el shell de Borg. Borg también busca bsdtar en la carpeta libarchive de Homebrew, que Homebrew deja fuera del PATH. Los archivos RAR cifrados todavía no se abren.

F4 abre el archivo seleccionado en el editor de Borg, y Shift-F4 lo abre en $VISUAL o $EDITOR. El editor conserva los finales de línea y la sangría del archivo, resalta el código como los visores y muestra los números de línea. Shift con las flechas selecciona texto; Ctrl-C, Ctrl-X y Ctrl-V copian, cortan y pegan mediante el portapapeles de Borg, y el texto pegado desde el terminal entra exactamente tal cual. Ctrl-Z y Ctrl-Y deshacen y rehacen, y Tab y Shift-Tab aumentan y reducen la sangría. F2 o Ctrl-S guardan a través de un archivo temporal, de modo que un archivo nunca queda escrito a medias. Los archivos que no son texto UTF-8, o que superan los 32 MiB, se abren en el visor. Las líneas de más de 20.000 caracteres, como el código minificado, no se resaltan, y solo se dibuja la parte de la línea que aparece en pantalla, así que incluso un archivo grande escrito en una sola línea se edita sin retrasos. Alt-Shift-F organiza un archivo JSON con un valor por línea, usando la sangría del propio archivo, en un solo paso que Ctrl-Z deshace; el JSON que no se puede analizar se queda como está, y la línea de estado indica dónde se detuvo el análisis.

El editor hace sus preguntas en diálogos sobre el texto: Tab se mueve entre campos y botones, Enter confirma el seleccionado, Esc cancela, y puedes hacer clic en cualquiera de ellos. Ctrl-F o F7 buscan texto con la barra de búsqueda que se describe más abajo. Ctrl-R o F4 reemplazan, con las mismas opciones que la barra de búsqueda: Enter reemplaza la coincidencia y pasa a la siguiente, Saltar la deja como está, y Alt-A o Todo reemplaza todas las coincidencias en un solo paso que se deshace con un único Ctrl-Z. Con una expresión regular, $1 en el reemplazo vuelve a poner lo que encontró su primer grupo. Ctrl-G va a una línea. Esc cierra el editor, y antes pregunta si quieres guardar o descartar los cambios sin guardar; si el archivo cambió en el disco desde que lo abriste, Borg pregunta si quieres sobrescribirlo o volver a cargarlo. Un clic coloca el cursor, arrastrar o hacer Shift-clic selecciona, un doble clic selecciona una palabra y la rueda desplaza; también puedes hacer clic en las teclas que aparecen en la línea de estado.

Alt-E abre el archivo seleccionado en el editor de Borg dentro del panel activo, en lugar de sus archivos, para que puedas editar dos archivos uno al lado del otro, o un archivo junto a la carpeta en la que está. En los resultados de búsqueda y en las colecciones, Alt-E abre el editor en el otro panel, para que la lista siga a la vista. Alt-E sobre otro resultado lo abre en lugar del archivo que hay ahí. Si ese archivo tiene cambios sin guardar, Alt-E trae su editor al frente y pregunta si quieres guardarlos. F6 pasa del editor de un panel al otro panel, y Tab vuelve al editor desde la lista de archivos. El texto copiado con Ctrl-C en un editor se pega con Ctrl-V en el otro. Mientras un editor tiene el foco, la barra de atajos muestra las teclas del editor, y las teclas del panel vuelven con la lista de archivos. Ctrl-O también muestra la consola desde un editor, y F9 abre los menús. Esc o F10 cierra el editor y devuelve al panel sus archivos; al salir, Borg pregunta primero por cada editor de panel con cambios sin guardar. La vista rápida y la información del archivo necesitan el otro panel, así que esperan hasta que se cierre su editor. Un editor abierto junto a los resultados les devuelve el foco al cerrarse y trae de vuelta la vista rápida o la información del archivo que mostraban.

El visor y el editor buscan texto de la misma manera. En el visor, /, F7 o Ctrl-F abren una barra de búsqueda en la línea de estado; en el editor, Ctrl-F o F7. Borg busca mientras escribes, a partir del punto donde se abrió la barra: todas las coincidencias en pantalla quedan marcadas, la actual destaca, y la barra las cuenta (3 de 17). Enter, Down o F3 van a la siguiente coincidencia, y Shift-Enter, Up o Shift-F3 a la anterior; después de la última, la búsqueda sigue desde el otro extremo y lo indica. Alt-C distingue mayúsculas y minúsculas (si no, una búsqueda en minúsculas encuentra cualquier combinación), Alt-W busca palabras completas y Alt-R interpreta la búsqueda como una expresión regular; también puedes hacer clic en las opciones. Ctrl-P y Ctrl-N recuperan las búsquedas recientes. Esc cierra la barra; después, n y N en el visor, o F3 y Shift-F3 en el editor, recorren las coincidencias. En un archivo grande, el visor busca en segundo plano, muestra hasta dónde ha llegado y se detiene al pulsar Esc. Cuenta las coincidencias en archivos de hasta 64 MiB, hasta 10.000 de ellas.

Esta guía sigue la rama main · Borg 0.11.0 · 1f6bce6
Puede que la última versión publicada no incluya todo lo que se describe aquí. Notas de la versión

Traducción de la guía en inglés. Las correcciones son bienvenidas. Los comandos y los atajos de teclado no se traducen.