Uma implementação do comando Unix touch em Rust, que cria arquivos vazios.
Este projeto é uma versão simplificada do comando touch do Unix, escrito em Rust. Ele permite criar um ou mais arquivos vazios de forma rápida e eficiente, com validação de nomes de arquivos para evitar caracteres inválidos.
- ✅ Criação de arquivos vazios
- ✅ Suporte para múltiplos arquivos em um único comando
- ✅ Validação de nomes de arquivos (evita caracteres especiais inválidos)
- ✅ Não sobrescreve arquivos existentes
- ✅ Mensagens de erro informativas em português
- Rust 1.x ou superior (edition 2024)
- Cargo (gerenciador de pacotes do Rust)
git clone https://github.com/pferrarezi/touch-rust.git
cd touch-rustcargo build --releaseO executável compilado estará disponível em target/release/touch.
touch <arquivo1> [arquivo2] [arquivo3] ...Criar um único arquivo:
./target/release/touch meu_arquivo.txtCriar múltiplos arquivos:
./target/release/touch arquivo1.txt arquivo2.log arquivo3.mdCriar arquivos em diferentes diretórios:
./target/release/touch docs/readme.md src/main.rsO programa valida os nomes dos arquivos e não permite os seguintes caracteres especiais:
/ \ : * + , ; < > ? = | " ' [ ] { }
Observação importante: Se um nome de arquivo contiver algum desses caracteres, ele será silenciosamente ignorado sem exibir mensagens de erro ou aviso. Apenas arquivos com nomes válidos serão criados.
cargo buildcargo testcargo check
cargo clippytouch-rust/
├── Cargo.toml # Configuração do projeto e dependências
├── Cargo.lock # Lock de versões das dependências
├── README.md # Este arquivo
└── src/
└── main.rs # Código fonte principal
- Validação: O programa valida cada nome de arquivo fornecido para garantir que não contenha caracteres inválidos
- Verificação: Verifica se o arquivo já existe
- Criação: Se o arquivo não existir, cria um arquivo vazio
- Tratamento de Erros: Exibe mensagens de erro apropriadas caso ocorra algum problema durante a criação
Contribuições são bem-vindas! Sinta-se à vontade para:
- Fazer um fork do projeto
- Criar uma branch para sua feature (
git checkout -b feature/MinhaFeature) - Commit suas mudanças (
git commit -m 'Adiciona alguma feature') - Push para a branch (
git push origin feature/MinhaFeature) - Abrir um Pull Request
Este projeto é de código aberto e está disponível para uso livre.
Inspirado no comando touch do Unix/Linux, reimplementado em Rust para fins educacionais e práticos.