Pular para o conteúdo
GitHub

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.

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.

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.

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.

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.