![如何自动将垃圾从一个磁盘移动到另一个磁盘?](https://linux22.com/image/1170523/%E5%A6%82%E4%BD%95%E8%87%AA%E5%8A%A8%E5%B0%86%E5%9E%83%E5%9C%BE%E4%BB%8E%E4%B8%80%E4%B8%AA%E7%A3%81%E7%9B%98%E7%A7%BB%E5%8A%A8%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E7%A3%81%E7%9B%98%EF%BC%9F.png)
我有两个磁盘,磁盘 1 和磁盘 2
磁盘 1 是安装在/home
磁盘 2 较小,作为/home
( /home/Username/blah
) 的子文件夹安装,并且活动较多
目前,当我从磁盘 2 中删除文件时,它会将其存储在磁盘 2 内名为.Trash-1004
( /home/Username/blah/.Trash-1004
) 的文件夹中。这会相对较快地填满磁盘。
我想让已删除的文件进入正常的垃圾文件夹/home/Username/.local/share/Trash
我有什么选择?我可以编写一个自动移动文件的脚本吗?或者有没有更自然的方法来实现这一点?
任何帮助将不胜感激 :)
答案1
当您“删除”文件时,它会被复制到垃圾目录中。这一点很明显,但可能不太明显的是,这是一个非常快速的操作,因为文件保留在同一磁盘和同一分区上。
如果删除文件并将其移动到另一个磁盘,这将增加删除该文件所需的时间。
如果删除的文件占用了太多磁盘空间,您可以直接删除这些文件。Shift删除文件时按住 键即可删除它们,跳过废纸篓。您还可以使用 等工具定期清理autotrash
废纸篓cron
。
我不想阻止你探索并让你的系统正是你想要的,但是当您删除文件时,将文件移动到不同的磁盘时可能会遇到奇怪的问题,我认为通过正确清理垃圾箱可以最好地解决您的问题。
答案2
我编写了一个简单的脚本来执行此操作。
它回复inotify
,使用安装sudo apt install inotify-tools
trash_path="/home/Kenivia/gdrive/.Trash-1004/"
move_path="/home/Kenivia/.local/share/Trash"
inotifywait -m "$trash_path"files -e create -e moved_to |
while read path action file; do
mv "$trash_path"files/"$file" $move_path'/files'
mv "$trash_path"info/"$file"'.trashinfo' $move_path'/info'
done
相应地改变你的路径。
要在启动时静默运行此程序,请将上述代码保存在 shell 脚本中,并将此命令添加到启动应用程序中:
nohup bash /PATH/TO/SHELL/SCRIPT/Move_trash.sh >/dev/null 2>&1 &
我对 shell 脚本还很陌生,如果有任何错误请指出,但它似乎在我的计算机上运行良好。就性能影响而言,即使在移动文件时,它也始终使用 0% 的 CPU,这真是一个惊喜。