Uma ferramenta de linha de comando simples e rápida para fazer backups temporários de arquivos e diretórios.
Project description
Bak
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
shutilou7z) - 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
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
Opcional: se você instalou via clone, adicione um alias para o comando.
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
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)
fdpara busca mais rápida - (opcional)
7zse 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dim_bak-25.5.1.tar.gz.
File metadata
- Download URL: dim_bak-25.5.1.tar.gz
- Upload date:
- Size: 9.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91cc1e4ce9077028c601e5d9fc25fc61c063e964653ba32870fbcfabc17becf5
|
|
| MD5 |
eb3260901dbea2f4804cc3fd43990053
|
|
| BLAKE2b-256 |
55d2c6ae11a87aff51ffbd541dcb8e02a0d931ca17b00eedbdb343939b1b87bd
|
File details
Details for the file dim_bak-25.5.1-py3-none-any.whl.
File metadata
- Download URL: dim_bak-25.5.1-py3-none-any.whl
- Upload date:
- Size: 9.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
731c9a9619edce636ea1e45a4aad52d20aebe77053765946b7a1c4e413555c1a
|
|
| MD5 |
d4f19c3e032a7324e2f9f22420056e01
|
|
| BLAKE2b-256 |
11ad5afa9d33ad521e1d4ba52968de899727225884568fb4fe755b9639df56d0
|