Skip to main content

Uma ferramenta de linha de comando simples e rápida para fazer backups temporários de arquivos e diretórios.

Project description

Bak

PyPI License: MIT

Bak é uma ferramenta de linha de comando simples e rápida para fazer backups temporários de arquivos e diretórios, com opção de compressão, recuperação e listagem. Ideal para quem trabalha com código ou arquivos importantes e quer uma forma rápida e prática de fazer backups localmente.

Funcionalidades

  • Backup de arquivos e diretórios
  • Compressão automática de diretórios (via shutil ou 7z)
  • Recuperação de arquivos por nome ou busca parcial (fd)
  • Listagem de arquivos salvos
  • Limpeza total da pasta de backups
  • Abertura do diretório no explorador de arquivos

Instalação

Há vários métodos para testar/instalar o Glances em seu sistema.

1. PyPI: Pip, a maneira padrão

Bak está no PyPI. Ao usar o PyPI, você estará usando a versão estável mais recente. Para instalar o Bak, basta usar a linha de comando pip.

pip install dim-back
bak --help

2. Instalação via repositório Git

Clone este repositório para um diretório do seu sistema.

git clone https://github.com/Dimitri-Miranda/bak
cd bak
python -m bak --help

Nota: essa abordagem não instala o pacote globalmente. Para facilitar o uso, recomenda-se configurar um alias.

Windows alias:

Crie um arquivo .bat , por exemplo bak.bat, em algum diretório que esteja no seu PATH.

Conteúdo do bak.bat:

@echo off
setlocal

set BAK_PATH=%USERPROFILE%\diretorio_onde_voce_clonou\bak
set PYTHONPATH=%BAK_PATH%

python -m bak %*

endlocal

Linux/macOS alias:

Crie um alias no seu shell (bash, zsh, etc.) para facilitar o uso do Bak via linha de comando. Abra seu arquivo de configuração do shell (.bashrc, .zshrc, ou equivalente) e adicione o alias abaixo, ajustando o caminho conforme necessário.

alias bak='PYTHONPATH="$HOME/diretorio_onde_voce_clonou/bak" python -m bak'

Depois de salvar o arquivo, recarregue o shell com:

source ~/.bashrc  # ou ~/.zshrc

Agora você pode usar o comando bak diretamente no terminal:

Configuração

Ao executar pela primeira vez, ou usar a flag --init, o script criará um arquivo de configuração em:

~\.config\bak\bak_config.ini

Esse arquivo define:

  • Diretório onde os backups serão salvos
  • Comando para abrir o explorador (explorer, xdg-open, etc.)
  • Mecanismo de compactação (shutil, 7z, etc.)

o script também criará uma diretório para os backups em:

~\.bak_temp

Este diretório conterá os backups que você fará (é possível alterar no arquivo de configuração bak_config.ini).

Como usar

Modos por diferentes tipo de instalação

Você pode usar a ferramenta de duas formas:

  • Clonando o repositório e executando via python -m bak
  • Instalando via pip (local ou PyPI) e usando o comando bak

Flags

Flag Descrição
-b, --backup Faz o backup de arquivos ou diretórios
-r, --rescue Recupera arquivos a partir do nome ou busca
-l, --list Lista os arquivos no diretório de backups
--clean Limpa todos os arquivos de backup
-o, --open Abre o diretório de backups no explorador
-f, --file Um ou mais arquivos/diretórios para usar
-s, --search Termo(s) para buscar arquivos (fd)
--init Cria/reseta configurações
--version Mostra a versão

Obs: As flags -b, -r, -l, --clean, -o, --init, --version são mutuamente exclusivas.

Exemplos

Fazer backup de um arquivo:

bak -b -f meuArquivo.txt

Fazer backup de um diretório (compactada):

bak -b -f meuDiretório

Recuperar arquivo por nome:

bak -r -f meuArquivo_2024-05-18_20-32-10.txt.bak

Recuperar arquivo por índice:

bak -r -f 0

Recuperar arquivo por busca (usa fd):

bak -r -s meuArquivo

Listar arquivos de backup:

bak -l

Limpar todos os backups:

bak --clean

Abrir o diretório de backups:

bak -o

Criar ou resetar o arquivo de configurações:

bak --init

Mostrar a versão:

bak --version

Exemplos com múltiplos arquivos

Fazer backup de vários arquivos e diretórios:

bak -b -f arquivo1.txt arquivo2.txt diretório1

Recuperar múltiplos arquivos por nome completo:

bak -r -f backup1_2024-05-18_20-32-10.txt.bak backup2_2024-05-18_2

Recuperar múltiplos arquivos por busca parcial:

bak -r -s backup1 backup2

Estrutura do Projeto

bak/
├── .gitignore        # Ignora arquivos temporários e de build
├── LICENSE           # Licença MIT do projeto
├── README.md         # Documentação principal do projeto
├── pyproject.toml    # Metadados e instruções de build (PEP 621)
└── bak/              # Pacote principal da ferramenta
    ├── __init__.py     # Define que a pasta é um pacote Python
    ├── __main__.py     # Permite execução com `python -m bak`
    ├── backup.py       # Lógica de backup de arquivos e diretórios
    ├── config.py       # Leitura e criação do arquivo de configuração
    ├── helpers.py      # Funções auxiliares e utilitárias
    ├── logger.py       # Funções de logging
    ├── main.py         # Ponto de entrada (define e processa os argumentos CLI)
    └── rescue.py       # Lógica de recuperação de backups

Requisitos

  • Python 3.8+
  • (opcional) fd para busca mais rápida
  • (opcional) 7z se quiser compressão avançada

Roadmap

  • Suporte para diferentes compressores
  • Testes automatizados com pytest

Licença

Este projeto é licenciado sob a licença MIT - veja o arquivo LICENSE para mais detalhes

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dim_bak-25.5.2.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dim_bak-25.5.2-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file dim_bak-25.5.2.tar.gz.

File metadata

  • Download URL: dim_bak-25.5.2.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for dim_bak-25.5.2.tar.gz
Algorithm Hash digest
SHA256 cbc010e03c3746c4a62fdf0a65757fc22bb511f4c86f4bec5bb71ee2b05c963f
MD5 c67c4fe91c80629711c276e416e89ae6
BLAKE2b-256 fc2a1925fd9f972ca174f5a94e49179da6e48a67026adee5439884567eeed31f

See more details on using hashes here.

File details

Details for the file dim_bak-25.5.2-py3-none-any.whl.

File metadata

  • Download URL: dim_bak-25.5.2-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for dim_bak-25.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 248d7f9d001081e174765fc3eb77c7797c99f66b61c13e01a2237a4cac3b26ab
MD5 6376639ceeee58506c9d8a13ff962458
BLAKE2b-256 a310a67d01985fd145ca10086f111c41ba7d670eb1e5da6b72f91ccf3a173353

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page