Ficheiros, tarefas e visualizadores
Ctrl-S abre a localização rápida. Escreva um nome ou um glob como *.rs; Down e Up passam de uma
correspondência para outra, Insert marca uma correspondência, Ctrl-A marca todas e Enter ou Esc
fecham a pesquisa. A correspondência ignora maiúsculas e minúsculas, a menos que a pesquisa
contenha maiúsculas.
Copiar, mover e eliminar
Seção intitulada “Copiar, mover e eliminar”F5, F6 e F8 iniciam tarefas de cópia, movimentação e eliminação. Alt-J abre a lista de tarefas, onde as pode pausar ou cancelar.
A caixa de diálogo Eliminar abre com Não selecionado, por isso Enter sozinho mantém os ficheiros. Para os eliminar, prima Y, ou passe para Sim com Tab ou uma tecla de seta e prima Enter.
Enquanto a caixa de diálogo Eliminar pergunta, o Borg conta os ficheiros que está prestes a remover e mostra o número e o tamanho por baixo da pergunta. A contagem para ao fim de 3 segundos, e nesse caso a linha começa por Pelo menos. O Borg procura também os programas que têm esses ficheiros abertos, que correm a partir deles ou que trabalham numa dessas pastas, e indica os seus nomes. Um programa que mantém aberto um ficheiro eliminado mantém também o espaço em disco que ele ocupa, até o fechar. Prima K para abrir o monitor de atividade no primeiro deles com Sinal ou prioridade, e pare-o antes de eliminar. O Borg vê os programas que o seu utilizador pode inspecionar, o que na maioria dos sistemas significa os seus. Os ficheiros em arquivos comprimidos, contentores e painéis remotos são eliminados sem estas verificações.
A caixa de diálogo Copiar tem uma caixa de verificação Otimizar a cópia para discos rígidos.
Prima Tab para lá chegar e Space para a assinalar ou desassinalar, ou clique nela. Fica por
assinalar em cada nova cópia. Neste modo, o Borg lê ficheiros pequenos para memória em lotes e
depois escreve cada lote, o que pode reduzir as deslocações da cabeça de leitura ao copiar dentro
do mesmo disco rígido. Um lote contém até 64 MiB de dados ou 4096 ficheiros; os ficheiros com
mais de 1 MiB são copiados normalmente. O ganho depende do disco, do sistema de ficheiros e da
cache do sistema operativo, e pode ser mais lento ao copiar entre discos diferentes.
Quando já existe um ficheiro com o mesmo nome: o substitui, s ignora, k mantém ambos, a
substitui todos,
n ignora todos e Esc cancela. As cópias são escritas em ficheiros temporários e mudam de nome
quando estão completas.
Tarefas longas e discos
Seção intitulada “Tarefas longas e discos”O Borg sabe em que tipo de disco está cada pasta: um disco rígido, um SSD, um disco em RAM, uma
partilha de rede como NFS, SMB ou sshfs, ou a máquina que um painel remoto mostra. No macOS pergunta
ao diskutil e ao hdiutil, e no Linux lê /proc/self/mountinfo e os indicadores do dispositivo
em /sys. Ctrl-L mostra o disco e o seu sistema de ficheiros na linha Disco, e a linha
Velocidade diz a que velocidade o Borg espera que ele leia e escreva.
Antes de uma tarefa escrever o que quer que seja, o Borg calcula quanto tempo vai demorar a partir dos bytes que lê e escreve em cada disco e do tempo que a compressão leva. Quando uma cópia, uma movimentação para outro disco ou uma descompactação demoraria mais de 2 minutos, ou uma alteração a um arquivo mais de 20 segundos, a caixa de diálogo Tarefa demorada diz quanto tempo vai levar, aproximadamente, e em que tipo de disco, e espera:
- Iniciar (
s) corre a tarefa. - Sempre para este ficheiro (
f) corre-a e deixa de perguntar sobre este arquivo. A descompactação e as alterações a um arquivo oferecem esta opção. - Sempre neste tipo de disco (
d) corre-a e deixa de perguntar sobre trabalho em discos deste tipo. - Cancelar (
c) para antes da primeira escrita.
Uma gravação do editor num arquivo pergunta por cima do editor, que volta a receber as teclas assim que responder.
Enquanto o Borg não tiver medido um disco, conta com a velocidade habitual do seu tipo: cerca de 120 MB/s para um disco rígido, 900 MB/s para um SSD, 4 GB/s para um disco em RAM, 60 MB/s para uma partilha de rede e 10 MB/s para uma máquina remota. Cada tarefa que corre durante pelo menos 2 segundos e move pelo menos 64 MiB ensina ao Borg a velocidade real do disco, e a linha Disco passa a dizer velocidade medida. Uma tarefa que passa o tempo a comprimir não lhe ensina nada sobre o disco.
O Borg guarda as velocidades e as suas respostas em drives.json, na pasta de estado, com até 256
arquivos. O ficheiro só pode ser lido pelo seu dono, porque indica os arquivos sobre os quais
respondeu. Todos os Borg que tiver abertos partilham-no: cada um lê-o ao arrancar e outra vez mesmo
antes de escrever, por isso o que um Borg aprendeu e as respostas que recebeu mantêm-se quando outro
escreve. A linha
Tarefas longas de Ctrl-L diz se o Borg pergunta primeiro nesse disco.
F9 → Opções → Voltar a perguntar antes de tarefas longas esquece todas as respostas Sempre,
incluindo as dadas noutros Borg. Um Borg que já esteja aberto mantém as respostas que tem até voltar
a escrever o ficheiro ou até o reiniciar.
Visualizador e pré-visualização
Seção intitulada “Visualizador e pré-visualização”F3 abre o visualizador. Com o plugin Sistema ativo, F3 num ficheiro .pcap, .pcapng ou .cap
abre antes o visualizador de tráfego do ecrã de rede (consulte
Capturar tráfego). Em ficheiros de texto, as setas e PgUp/PgDn percorrem o
texto, w ativa ou desativa a moldagem de linhas e Esc ou q fecham-no. Em imagens, Left/Right
ou p/n mostram a imagem anterior ou a seguinte. O Borg usa o protocolo de imagens do terminal
quando existe; nos outros terminais, a imagem aparece como blocos coloridos.
Ctrl-Q mostra uma pré-visualização no outro painel. Tab entra nela, onde as setas, PgUp/PgDn, Home/End e a roda do rato percorrem o conteúdo; Tab ou Esc voltam à lista de ficheiros. Ctrl-L mostra informações sobre o ficheiro. F3 abre uma pré-visualização de texto no visualizador completo, e fechar o visualizador regressa à pré-visualização com a posição, a moldagem, o modo de código-fonte e as linhas hexadecimais preservados. Ambos leem os ficheiros da mesma forma limitada, pelo que abrir um ficheiro de texto grande lê apenas mais ou menos a primeira página e continua rápido, seja qual for o tamanho do ficheiro. Num resultado de uma pesquisa de texto, a pré-visualização abre em vez disso na primeira correspondência do ficheiro, com a pesquisa marcada como a barra de pesquisa a marca, e lê apenas à volta dessa correspondência.
Os dois visualizadores de texto realçam a sintaxe de linguagens de programação, formatos de
marcação e ficheiros de configuração comuns, incluindo Rust, Python, JavaScript, TypeScript/TSX,
Go, C/C++, Java, C#, Ruby, PHP, Lua, SQL, HTML/CSS, JSON, YAML, TOML, scripts de shell e
Dockerfiles. O Markdown abre formatado por omissão;
prima s ou F4 em qualquer dos visualizadores para passar ao código-fonte. São suportados
títulos, ênfase, listas, listas de tarefas, ligações, tabelas e blocos de código delimitados. Os
ficheiros Markdown com mais de 2 MiB abrem como código-fonte para poupar memória.
O JSON abre organizado com um valor por linha, com as chaves pela ordem original e os números
exatamente como estão escritos, o que ajuda sobretudo com ficheiros escritos numa só linha. Prima
s ou F4 para ver o ficheiro tal como está escrito. Os ficheiros JSON Lines (.jsonl, .ndjson)
são organizados um registo de cada vez. O JSON com mais de 16 MiB, ou que não pode ser analisado,
abre tal como está escrito.
Prima h no visualizador de texto ou na pré-visualização para ver os bytes do ficheiro em linhas
hexadecimais e prima-o de novo para voltar ao texto. Um ficheiro binário, que o Borg reconhece por
um byte a zero nos primeiros 4 KiB, abre em linhas hexadecimais em ambos, e h mostra o seu texto.
Cada linha começa com a sua posição no ficheiro e mostra depois os seus bytes em hexadecimal e os
mesmos bytes como texto, com um ponto em cada byte que não é imprimível. As posições e os bytes a
zero aparecem esbatidos. Uma linha tem tantos bytes quantos couberem na largura: 64, 32, 16, 8, 4, 2
ou 1, com um espaço maior a seguir a cada oitavo byte. O Borg lê apenas as linhas que estão no ecrã,
pelo que as setas, PgUp/PgDn, Space, Home e End percorrem de imediato um ficheiro de vários
gigabytes. A barra de pesquisa também funciona nas linhas hexadecimais e marca cada correspondência
nas duas colunas. Em hexadecimal, os ficheiros Markdown e JSON mostram os bytes tal como estão
escritos.
No visualizador, uma faixa de entropia acompanha o lado direito das linhas hexadecimais. A entropia
indica quão variados são os bytes, de 0 bits por byte para um único byte repetido a 8 para bytes tão
aleatórios como dados comprimidos, cifrados ou empacotados. O texto fica normalmente perto de 4,5, e
o código entre 5 e 6,5. A faixa cobre o ficheiro inteiro de cima a baixo. A barra de cada célula é
tão longa quanto a entropia mais alta na sua parte do ficheiro, esbatida abaixo de 4 bits por byte e
a vermelho e negrito a partir de 7,2, e as células dos bytes que estão no ecrã ficam marcadas como
numa barra de deslocamento. A linha de estado mostra a entropia na página e se é baixa,
típica ou alta. Prima ] e [ para saltar para a sequência seguinte ou anterior de blocos
de entropia alta, ou clique na faixa para ir para essa parte do ficheiro.
O Borg lê a entropia em segundo plano, em blocos de 4 KiB. Um ficheiro até 256 MiB é lido por inteiro, e um maior é amostrado em 65 536 blocos espaçados por igual, pelo que a memória usada é a mesma seja qual for o tamanho do ficheiro. Entropia alta onde se esperaria código, cabeçalhos ou tabelas pode indicar dados empacotados ou cifrados ali escondidos. Multimédia comprimida, arquivos, volumes cifrados e cofres de chaves têm entropia alta do princípio ao fim, por isso leia a faixa à luz do que o ficheiro deveria conter.
Arquivos
Seção intitulada “Arquivos”Prima Enter num arquivo para o abrir como uma pasta. O Borg abre ficheiros cujo nome termina em
.zip, .7z, .rar, .tar, .tar.gz, .tgz, .tar.bz2, .tbz2, .tbz, .tar.xz, .txz,
.tar.zst ou .tzst, e ficheiros comprimidos únicos terminados em .gz, .bz2, .xz ou .zst,
que abrem como uma pasta com esse único ficheiro. Ctrl-PgDn também abre um arquivo, e F3 no próprio
arquivo continua a mostrar os seus bytes no visualizador. O título do painel ganha uma marca como
▤ zip, que indica o formato que o Borg encontrou nos primeiros bytes do ficheiro, e o caminho
continua dentro do arquivo. As pastas lá dentro mostram o tamanho do que contêm. Left, Enter em ..
ou Ctrl-PgUp no topo do arquivo levam-no de volta à pasta que o contém, com o cursor no arquivo.
Quando o arquivo foi eliminado ou já não se lê, subir a partir de qualquer pasta dele também o leva
de volta para lá, e o aviso diz porquê.
Para listar um arquivo, o Borg lê o que ele contém, o que num tar comprimido significa ler o ficheiro inteiro. Enquanto um arquivo grande é lido, o rodapé do painel mostra até onde o Borg chegou, e Esc interrompe a leitura e volta atrás. O Borg guarda as listagens dos últimos 4 arquivos enquanto os seus ficheiros mantiverem o mesmo tamanho e a mesma data, por isso entrar e sair outra vez é imediato. Os arquivos com mais de 1 000 000 de entradas não abrem.
F3 ou Enter num ficheiro lá dentro descompacta-o para uma pasta privada na pasta de execução do Borg e abre-o no visualizador. A descompactação corre como uma tarefa, por isso um ficheiro grande mostra o progresso, e Esc cancela-a. O Borg apaga o ficheiro descompactado assim que o visualizador o abre.
F4 num ficheiro lá dentro abre-o no editor, e Alt-E abre-o no editor do painel. O Borg descompacta o ficheiro para a mesma pasta privada, e o título do editor mostra o seu caminho dentro do arquivo. Cada gravação escreve o ficheiro de volta no arquivo como uma tarefa, e o editor avisa disso (“Guardado. A escrever em site.zip.”). Quando o arquivo não o aceita, o aviso diz porquê e onde fica a sua edição.
F5 copia os ficheiros e pastas marcados para fora do arquivo, para a pasta do outro painel ou para a pasta que escrever na caixa de diálogo Copiar. Extrair aqui e Extrair para o outro painel, no menu Ficheiro (F2), descompactam o arquivo inteiro sob o cursor para a pasta deste painel ou do outro. Em ambos os casos os ficheiros ficam numa pasta desta máquina, e a tarefa aparece em Alt-J com o progresso, a velocidade e o tempo restante. Pergunta o que fazer com nomes que já existem, tal como uma cópia, escreve cada ficheiro com um nome temporário até estar completo e para cada ficheiro no tamanho que o arquivo lhe atribui.
O Borg altera arquivos zip, 7z e tar, comprimidos ou não. F5 ou F6 a partir de uma pasta desta máquina copia ou move os ficheiros marcados para o arquivo que o outro painel mostra, ou para a pasta dele que escrever na caixa de diálogo. F7 cria uma pasta no arquivo, e F8 elimina as entradas marcadas depois de perguntar. F6 para um nome no mesmo arquivo muda o nome das entradas ou move-as para lá, e F6 para uma pasta desta máquina move-as para fora: são descompactadas lá e depois saem do arquivo. Quando um nome já existe no arquivo, o Borg pergunta o que fazer tal como numa cópia, e faz o mesmo quando dois dos ficheiros que copia têm o mesmo nome, como pode acontecer com ficheiros de resultados de pesquisa ou de uma coleção. Uma mudança de nome para um nome que o arquivo já tem para com um aviso. Uma movimentação só elimina o que chegou inteiro, por isso um ficheiro que ignore fica onde estava, tal como um ficheiro que outro posterior com o mesmo nome substituiu.
Cada alteração corre como uma tarefa em Alt-J. O Borg escreve o arquivo alterado ao lado do original
com um nome temporário, volta a lê-lo e só então o põe no lugar do original, com as mesmas
permissões. A releitura verifica a lista de entradas de um zip ou de um 7z e cada entrada de um tar.
Um ficheiro entra tal como está quando o Borg o escreve, por isso um ficheiro que volte a guardar
enquanto a tarefa espera pela sua resposta entra com o conteúdo mais recente. Uma alteração que
falhe ou que cancele deixa o arquivo como estava. As entradas que a alteração mantém são copiadas
tal como estão guardadas: um zip copia os seus dados comprimidos, e um 7z copia cada bloco sólido
que mantém todas as suas entradas e só volta a comprimir os blocos que perdem alguma. Um tar
comprimido é descompactado e comprimido de novo por inteiro, e descompactado mais uma vez para o
reler, por isso alterar um .tar.xz grande demora quase tanto como criá-lo e descompactá-lo. Um zip
ou um tar simples que só ganha entradas é copiado e as novas entradas seguem-se à última, e em APFS,
Btrfs, XFS e bcachefs essa cópia é instantânea. Antes de uma alteração que demoraria muito, o Borg
pergunta primeiro (consulte Tarefas longas e discos).
Num arquivo zip ou 7z cifrado, as novas entradas são cifradas com AES-256 e com a palavra-passe com que abriu o arquivo, e um 7z que esconde a sua lista de entradas continua a escondê-la. As entradas que a alteração mantém ficam como estavam.
Os arquivos RAR e os ficheiros comprimidos únicos, como .gz, continuam só para leitura, e
alterá-los avisa disso. Ctrl-Q e Comprimir… não funcionam dentro de um arquivo. Um arquivo
dentro de outro arquivo abre depois de o copiar para fora. A shell
fica na pasta que contém o arquivo, e uma sessão guardada reabre essa pasta com o cursor no arquivo.
Os arquivos zip e 7z cifrados pedem a palavra-passe ao abrir. Na caixa de diálogo Palavra-passe, cada carácter que escreve aparece como ruído de interferência que está sempre a mudar e cintila a cada tecla. O ruído depende apenas de quantos caracteres escreveu. A caixa volta a pedir quando a palavra-passe está errada, e Esc sai do arquivo. O Borg guarda a palavra-passe em memória enquanto o painel mostra o arquivo e nunca a escreve em lado nenhum. Extrair aqui não tem maneira de a pedir, por isso, num arquivo cifrado, prima Enter nele, escreva a palavra-passe e copie os ficheiros para fora com F5.
Antes de escrever o que quer que seja, o Borg soma o que as entradas escolhidas ocupam depois de
descompactadas e pergunta primeiro quando isso passa de 1 GiB e de 100 vezes o tamanho do arquivo,
ou de 100 000 ficheiros, que é o aspeto de uma bomba zip. Também pergunta quando o destino tem menos
espaço livre do que os ficheiros precisam, e uma alteração a um arquivo pergunta quando o seu disco
não tem espaço para o novo arquivo ao lado do antigo. Descompactar mesmo assim (u) avança, e Cancelar
para antes do primeiro ficheiro. As entradas com caminhos absolutos, com .. no caminho ou que são
ficheiros de dispositivo ficam de fora, com um aviso, e nenhuma entrada ou ligação de um arquivo
consegue fazer o Borg escrever fora da pasta de destino.
O Borg lê zip, 7z e a família tar por si próprio. Os arquivos RAR passam pelo 7-Zip (7zz ou 7z)
ou pelo bsdtar, o que o Borg encontrar primeiro, e o macOS já traz o bsdtar. Quando nenhum está
instalado, Enter num arquivo RAR propõe instalar o bsdtar. A caixa de diálogo Instalar bsdtar
funciona como a do tcpdump em Capturar tráfego: mostra o comando exato para o
seu gestor de pacotes, e Enter escreve-o na shell do Borg. O Borg também procura o bsdtar na pasta
libarchive do Homebrew, que o Homebrew deixa fora do PATH. Os arquivos RAR cifrados ainda não
abrem.
F4 abre o ficheiro selecionado no editor do Borg, e Shift-F4 abre-o em $VISUAL ou $EDITOR. O
editor mantém os finais de linha e a indentação do ficheiro, realça o código como os
visualizadores e mostra os números de linha. Shift com as setas seleciona texto; Ctrl-C, Ctrl-X e
Ctrl-V copiam, cortam e colam através da área de transferência do Borg, e o texto colado a partir
do terminal entra exatamente como está. Ctrl-Z e Ctrl-Y anulam e refazem, e Tab e Shift-Tab
aumentam e diminuem a indentação. F2 ou Ctrl-S guardam através de um ficheiro temporário, pelo que
um ficheiro nunca fica escrito a meio. Os ficheiros que não são texto UTF-8, ou que têm mais de 32
MiB, abrem no visualizador. As linhas com mais de 20 000 caracteres, como código minificado, não
são realçadas, e só é desenhada a parte da linha que aparece no ecrã, pelo que até um ficheiro
grande escrito numa só linha se edita sem atrasos. Alt-Shift-F organiza um ficheiro JSON com um
valor por linha, usando a indentação do próprio ficheiro, num único passo que Ctrl-Z anula; o JSON
que não pode ser analisado fica como está, e a linha de estado indica onde a análise parou.
O editor faz as suas perguntas em caixas de diálogo sobre o texto: Tab passa entre campos e
botões, Enter confirma o selecionado, Esc cancela, e pode clicar em qualquer um deles. Ctrl-F ou
F7 procuram texto com a barra de pesquisa descrita abaixo. Ctrl-R ou F4 substituem, com as mesmas
opções da barra de pesquisa: Enter substitui a correspondência e passa à seguinte, Saltar
deixa-a como está, e Alt-A ou Todas substitui todas as correspondências de uma só vez, que um
único Ctrl-Z anula. Com uma expressão regular, $1 na substituição repõe o que o primeiro grupo
encontrou. Ctrl-G vai para uma linha. Esc fecha o editor e pergunta primeiro se quer guardar ou
descartar as alterações por guardar; se o ficheiro tiver mudado no disco desde que o abriu, o Borg
pergunta se o quer substituir ou recarregar. Um clique coloca o cursor, arrastar ou clicar com
Shift seleciona, um duplo clique seleciona uma palavra e a roda percorre o texto; as teclas
indicadas na linha de estado também podem ser clicadas.
Alt-E abre o ficheiro selecionado no editor do Borg dentro do painel ativo, em vez dos seus ficheiros, para que possa editar dois ficheiros lado a lado, ou um ficheiro ao lado da pasta onde está. Nos resultados de pesquisa e nas coleções, Alt-E abre o editor no outro painel, para que a lista continue à vista. Alt-E noutro resultado abre-o no lugar do ficheiro que lá está. Quando esse ficheiro tem alterações por guardar, Alt-E traz o editor dele para a frente e pergunta se as quer guardar. F6 passa do editor de um painel para o outro painel, e Tab volta ao editor a partir da lista de ficheiros. O texto copiado com Ctrl-C num editor cola-se com Ctrl-V no outro. Enquanto um editor tem o foco, a barra de atalhos mostra as teclas do editor, e as teclas do painel voltam com a lista de ficheiros. Ctrl-O também mostra a consola a partir de um editor, e F9 abre os menus. Esc ou F10 fecha o editor e devolve ao painel os seus ficheiros; ao sair, o Borg pergunta primeiro por cada editor de painel com alterações por guardar. A pré-visualização e as informações do ficheiro precisam do outro painel, por isso esperam até que o editor dele seja fechado. Um editor aberto ao lado dos resultados devolve-lhes o foco quando fecha e traz de volta a pré-visualização ou as informações do ficheiro que mostravam.
O visualizador e o editor procuram texto da mesma forma. No visualizador, /, F7 ou Ctrl-F abrem
uma barra de pesquisa na linha de estado; no editor, é Ctrl-F ou F7. O Borg procura à medida que
escreve, a partir do ponto onde a barra abriu: todas as correspondências no ecrã ficam marcadas, a
atual destaca-se, e a barra conta-as (3 de 17). Enter, Down ou F3 vão para a correspondência
seguinte, e Shift-Enter, Up ou Shift-F3 para a anterior; depois da última correspondência, a
pesquisa continua a partir da outra ponta e avisa disso. Alt-C distingue maiúsculas de minúsculas
(caso contrário, uma pesquisa em minúsculas encontra qualquer caixa), Alt-W procura palavras
inteiras, e Alt-R lê a pesquisa como expressão regular; também pode clicar nas opções. Ctrl-P e
Ctrl-N trazem de volta pesquisas recentes. Esc fecha a barra; a seguir, n e N no visualizador,
ou F3 e Shift-F3 no editor, percorrem as correspondências. Num ficheiro grande, o visualizador
procura em segundo plano, mostra até onde chegou e para quando prime Esc. Conta as
correspondências em ficheiros até 64 MiB, até 10 000 delas.
Este guia acompanha o ramo main · Borg 0.11.0 · 1f6bce6
A versão mais recente pode ainda não incluir tudo o que aqui se descreve. Notas de versão
Traduzido a partir do guia em inglês. As correções são bem-vindas. Os comandos e os atalhos de teclado não são traduzidos.