Linux的回收站实现

作者:掠影
最后编辑时间:
浏览次数:1786



    前几日听说了一个笑话,有程序员在输入rm -rf ./*的时候,手一滑少输入了一个点,于是就GG了,都用不着删库跑路,直接把主机删了个底朝天。故而想到,如果有一个临时存储站之类的地方可以存储“删除”的文件,当误删或者需要的时候就可以去这边找回了,同时,如果加上了按日期归档,那么这样的一个回收站自然是再好不过的了。

    然而对于Linux来说,由于不存在Windows中的回收站机制,因而要实现这样的回收站,还是需要用mv指令,并指定一块空间作为临时存储的地方。同时,由于学习shell有一定的成本,特别是对于字符拼接之类的操作,还是在php中用的较为熟练,因此借用php中的exec_shell方法调用shell指令,并通过php进行目标文件的连接,是极好不过的;与此同时,还需要自定义一个指令,将这些文件转移到这个位置。基于以上要求,实现了一个如下的脚本:


<?php
$var = $argv;//获取该指令后跟随的文件名
$des = '';
for($i=1;$i<$argc;$i++)
{
        $des .= $argv[$i]." ";

}
$date = date("Ymd");
if(!file_exists("/mnt/disk_c/trashbin/".$date))
{
        mkdir("/mnt/disk_c/trashbin/".$date);//若不存在当日日期对应的回收站文件夹,则创建该文件夹
}
exec("mv -b ".$des." /mnt/disk_c/trashbin/".$date);//执行删除至回收站操作


以上操作保存为/del.php, 并通过alias del='php /del.php'来做成系统指令,即可在本次用户会话中使用del来代替rm,做删除操作了;而若需要实现持久化指令保存,则需要在~/.bashrc文件中加上以上一行,即可实现每次登陆均可通过del来实现删除至回收站的操作了,是不是很快捷方便~  如果这篇文章可以帮助到你,请不吝评论和打赏,谢谢~


取消

感谢您的支持,我会继续努力的!关闭

扫码支持
大家有钱的捧个钱场,没钱的捧个人场233333

打开支付宝扫一扫,即可进行扫码打赏哦

分享到: QQ空间 更多



评论区

  • 180.167*****: 2017-05-05
    哇只会PHP的渣渣hhh
  • 180.167*****: 2017-05-05
    哇只会PHP的渣渣😒