ReMove to Waste 0.9.3

rmw (ReMove to Waste) is a trashcan/recycle bin utility for the command line. It can move and restore files to and from directories specified in a configuration file, and can also be integrated with your regular desktop trash folder (if your desktop environment uses the FreeDesktop.org Trash specification). One of the unique features of rmw is the ability to purge items from your waste (or trash) directories after x number of days.

Tags terminal c end-users curses file-manager
License GNU GPLv3
State stable

Recent Releases

0.9.307 Nov 2024 20:07 minor bugfix: + Add support for cloning(moving) files across btrfs root and subvolumes (Linux only); thanks to @luigir-it for suggesting this feature and testing * Ensure directories respect umask settings upon creation * bugfix: In some cases, 'rmw -s' crashed with message "*** buffer overflow detected ***: terminated". This could happen if compiled with '-D_FORTIFY_SOURCE=3' and set up with 'b_sanitize=none', and depending on the filenames in the waste directories * Add completion for fishshell; thanks to @ccoVeille * Fix strmode conflicting types error on OpenBSD and FreeBSD * Fix for tests failing after the Epochalypse (#439); thanks to @bmwiedemann + Add French translation (partial)
0.9.218 Mar 2024 12:40 minor bugfix: * Show counter in real-time as items are getting purged * Update for use with canfigger 0.3.0 * Fix translations not working when using the AppImage
0.9.117 May 2023 18:41 minor bugfix: * bugfix: In some cases, trashinfo file doesn't get removed (#400) * tests: build or rebuild binary before running script-based tests (fix for script-based test failures when 'meson test' is run in a clean build directory) - on MacOS and *bsd, specifying the PKG_CONFIG_PATH is no longer needed to find the ncurses menu library * fix build on Alpine Linux (check for and link to musl-fts) Thanks to @eli-schwartz and Hello71 from #musl on Libera IRC.
0.9.016 Feb 2023 05:50 minor feature: - When purging, '-ff' is no longer needed to confirm removal of non-writable expired directories and files * replace function used to remove directories with rm from FreeBSD; Thanks to @DiegoMagdaleno and @dcantrell * change message displayed to user when a file being rmw'ed is on a filesystem that doesn't haven't a WASTE folder defined + Ignore requests to ReMove top-level files, add --top-level-bypass option to bypass the protection + Ignore requests to ReMove user's home directory * bugfix: buffer underflow when calling trim_char() with empty string (Thanks to Christopher Wellons) * replace valgrind test setup with asan (-fsanitize) * the 'ESC' key can now be used to quit the restore file selection menu
0.8.127 Jan 2022 04:43 minor feature: * the curses menu library is now much more likely to be found on *BSD systems * bugfix: when attempting to restore a file from a waste folder listed in the config file that has a trailing slash, rmw will no longer report that the file is not in a waste folder. - curses is no longer a requirement (configure -Dwithout-curses=true) - removed '-e' command line option ('--empty' option not affected)
0.8.030 Jun 2021 03:16 minor feature: The config option 'purge_after' has been deprecated and replaced With 'expire_age' ('purge_after' will still be accepted, but the user Will be given a deprecation warning). . When '-u' is used, the mrl file will no longer be removed, but. Emptied instead. If a user gives the '-u' option when the mrl file is Empty, they will get a friendlier message stating that there are no Items in the list (instead of an error message about the file not Being found). . Handling of dot dirs ('.' and '..'). Instead of giving an. Error message and quitting, rmw will print a message stating that They'll be skipped. . The environmental variable RMWTEST_HOME has been replaced with. RMW_FAKE_HOME (Trying to use RMWTEST_HOME will give a deprecation Warning and still work). . Expanded the man page and updated the README (improved documentation). . Replaced autotools build system with meson. . Rmw now uses the canfigger library for parsing the configuration file. . Disabled a restore test that failed when 'make check' is run with Superuser privileges.
0.7.0907 May 2021 12:25 minor feature: filenames now display correctly when using '-vvg'.
0.7.0801 May 2021 03:16 minor feature: test failing on osx using xcode 11.5 and above.
0.7.0727 Apr 2021 14:05 minor feature: When restoring files from removable media or devices, rmw. Will now process relative paths (this primarily affects users who Trash a file with the "move to trash" option from their desktop, and Then later try to restore with rmw. See#299 for more Information). . list output (rmw -lv) shows all removable devices as. Attached even for those that are detached. . Removed deprecated config option (purgeDays). . Minor updates to tests infrastructure. . (for testing) Replace RMWTRASH(=fake-year) with RMW_FAKE_YEAR(=true).
0.7.0602 Mar 2021 05:45 minor feature: 0.7.06 (2021-03-01) ------------------ * When using -s,--select, the number of lines the terminal has will be checked. The number of items in the list will be based on that; if it doesn't meet the minumum requirement, rmw will exit. + Allow optional argument to -g/--purge that can override the value of 'purge_after' in the configuration file (-g N_DAYS , --purge =N_DAYS ). * bugfix: restore broken symbolic links instead of giving a "file not found" message (issue #292) * Improved handling of file with leading hyphens - When an invalid option is given, usage output no longer displays * You can view how many days remain until a file is purged by using -vv (with -fg). * If lstat() encounters and error, also display the filename/directory it was attempting to access. + add '-m, --most-recent-list' option: list most recently rmw'ed files
0.7.0518 Jun 2020 00:05 minor feature: For compiling with gcc 10 (Thanks to muralikodali and GazL) . Rmw will now refuse to move a waste folder or a file that resides. Within a waste folder (This feature was in place before, but at some Point Andy accidentally removed the code). . Feature removed: restore with '-z' using only the basename from any. Directory. User must be in a Trash directory or specify the full path (e.g. rmw -z /.local/share/Trash/foo.bar). For details, see. . Added '-R' option, changed '--recurse' option to '--recursive'. Added recursive (rm compatibility) options in --help output, message shown when using '-r, --recursive' . Broken purge test.
0.7.0413 Aug 2019 03:15 minor feature: To get user's home dir, revert back to retrieving via environmental Variable (conforms to FreeDesktop Trash Spec) . The config file is now read from XDG_CONFIG_HOME/rmwrc or. /.config/rmwrc. . Lastpurge is now 'purge-time' and stored in XDG_DATA_HOME/rmw or. /.local/share/rmw. . Lastrmw is now 'mrl' and stored in XDG_DATA_HOME/rmw or. /.local/share/rmw. . The default Waste folder (specified in the configuration file) is now. /.local/share/Waste instead of /trash.rmw. . The /.config/rmw directory is no longer used. It can be deleted. But you may first want to copy your old configuration file to the new Location.
0.7.0307 Aug 2019 03:15 minor feature: Rmw now gets the user's HOMEDIR from a passwd struct (seehttps://linux.die.net/man/3/getpwnam), not from the environmental Variable. . A waste folder can now use the UID (user id) variable. Example: /mnt/fs/Trash- UID. . Because rmw automatically creates a config file in the user's home. Directory, rmw no longer searches in /etc (or /usr/local/etc..) for rmwrc. It can be removed from your system if installed previously. . A lot of code clean-up and refactoring since the last release.
0.7.0213 Jul 2019 03:11 minor bugfix: bugfix:on some systems, purge would fail to run when requested, 'make check' failed. This was reported to happen on Manjaro and Arch. bugfix:missing output when purge is attempted without force feature_add:Emptying the waste folders is now done with the -e,--empty option