ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I've written a vary basic script that moves a specified file into the dustbin directory. The script is as follows:
Code:
#!/bin/bash
#move items to dustbin directory
mv "$@" ~/dustbin/
echo "File moved to dustbin"
This works fine for me, any file I specify gets moved to the dustbin directory. However, what I would like to do is create a new script that will move the file in the dustbin directory back to its original directory. I know I could easily write a script that would move it back to a location specified by the user, but I would prefer to have one that would move it to its original directory.
Yes it's possible, but you kinda have to cheat a little. I'd write a tracer file, or marker file, that holds the name of the old directory. And then read in that file into your new script, so you know where it came from. I don't know any other method of keeping track, and it's not the best programming method.
Your solution does not take into account files with the same name, or files with the same name and path but created/deleted at different times.
Off the top of my head I would create random file names (with mktemp) and rename the file to the renamed file under the trash directory. I would then use an index file to store the deleted file name and path against a deleted time stamp and the random name.
Obviously that makes recovery a little more difficult. You would tool needs to give you a list of file names and time stamps, and then ultimately recover a specific version of the file.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.