## gowipe - securely delete files and directories (not for SSD) [![Actions](https://github.com/tlinden/gowipe/actions/workflows/ci.yaml/badge.svg)](https://github.com/tlinden/gowipe/actions) [![License](https://img.shields.io/badge/license-GPL-blue.svg)](https://github.com/tlinden/gowipe/blob/master/LICENSE) [![Go Report Card](https://goreportcard.com/badge/github.com/tlinden/gowipe)](https://goreportcard.com/report/github.com/tlinden/gowipe) [![GitHub release](https://img.shields.io/github/v/release/tlinden/gowipe?color=%2300a719)](https://github.com/TLINDEN/gowipe/releases/latest) ## Description `gowipe` is a simple self contained tool to securely wipe files and directories. By default it renames and overwrites files and directories 30 times and uses the `secure` mode, which uses strong random bytes for the overwriting process. Gowipe writes as much bytes into a file as its original size. You can tweak mode and round numbers. Other modes are `zero`, which uses zeroes for overwriting (not recommended) or `encrypt` which encrypts the data using AES and a strong random key. This is the most secure but also to slowest mode. Although you can use `gowipe` on SSD disks, it doesn't make much sense. To wipe such a disk you have to resort to other means. But you can savely use it on magnetic discs or usb drives. Of course there are many other such tools available, this one is insofar special as you can download a pre-compiled binary without any library dependencies. This allows you to wipe files on systems, where you cannot install a wiper via some package management (such as appliance systems or vm's). ## Example Overwrite the directory `vhs` recursively 50 times using strong encryption and verbose output: ```shell gowipe -c 50 -E -r -v vhs Wiped vhs/help.png (355011 bytes) Wiped vhs/rec.Dockerfile (348 bytes) Wiped vhs/rec.gif (3533338 bytes) Wiped vhs/rec.tape (852 bytes) Wiped vhs (4096 bytes) Dirs wiped: 1 Files wiped: 5 Bytes deleted: 3889549 Time elapsed: 426.286639ms Overwritten: 50 times Wipe mode: encrypt Recurse dirs: true ``` ``` Usage: gowipe [-rcvz] ... Options: -r --recursive Delete recursively -c --count Overwrite files times -m --mode Use for overwriting (or use -E, -S, -M, -Z) -n --nodelete Do not delete files after overwriting -N --norename Do not rename the files -v --verbose Verbose output -V --version Show program version -h --help Show usage Available modes: zero Overwrite with zeroes (-Z) math Overwrite with math random bytes (-M) secure Overwrite with secure random bytes (default) (-S) encrypt Overwrite with ChaCha2Poly1305 encryption (most secure) (-E) ``` ## Getting help Although I'm happy to hear from gowipe users in private email, that's the best way for me to forget to do something. In order to report a bug, unexpected behavior, feature requests or to submit a patch, please open an issue on github: https://github.com/TLINDEN/gowipe/issues. ## Copyright and license This software is licensed under the GNU GENERAL PUBLIC LICENSE version 3. ## Authors T.v.Dein ## Project homepage https://github.com/TLINDEN/gowipe