It is easy to make a mistake when copying (cp), moving/renaming (mv), removing (rm/rmdir), creating dirs (mkdir), and changing file permissions (chmod).  It would be nice to have a log to view before commit.Is there a tool to do these actions in a transaction and allow before/after diff and rollback?  I know my question is very broad as there are a huge number of commands that could be supported.  Even if the most basic actions were supported it would be helpful.
Transactional UNIX shell for file system changes
shell;filesystems