shell实现linux回收站的功能

下载:

https://gitee.com/LoongWang/shellrecycling/repository/archive/master.zip

代码:

 #/usr/bin/env bash

 #定义
 #定义回收站目录
 RecyclingDir='/usr/local/recycling/'
 #定义回收站log文件夹
 RecyclingLogDir='/var/log/recyclinglog/'
 #定义回收站log文件
 RecyclingLog="/var/log/recyclinglog/$(whoami)"
 #定义回收站家目录
 UserRecyclingDir="/usr/local/recycling/$(whoami)"
 #定义返回码
 ReturnCode=

 #程序开始
 #检测主文件是否存在、没有则新建

 for DirName in $RecyclingLogDir $RecyclingDir $UserRecyclingDir
 do
     if [ ! -d $DirName ]
     then
         if [[ $DirName == "$RecyclingLogDir" ]]
         then
             mkdir $RecyclingLogDir
              $RecyclingLogDir
             continue
         fi
         #将Log写入文件中
         echo "$(date +"%F %H:%M:%S") - Make Dirctory" >> $RecyclingLog
          $RecyclingLog
         #创建目录
         mkdir $DirName

          ]
         then
             echo "$(date +"%F %H:%M:%S") - Make Dirctory $DirName Ok" >> $RecyclingLog
         else
             echo "$(date +"%F %H:%M:%S") - Make Dirctory $DirName Fail" >> $RecyclingLog
             echo "$(date +"%F %H:%M:%S") - Make Dirctory Fail"

             ReturnCode=
             echo -e "The Linux Comamnd is error , returncode:127\n"
             echo "$(date +"%F %H:%M:%S") - Make Dirctory Fail"
             echo "Your can see log the $RecyclingLog" 

             exit $ReturnCode
         fi
          $DirName

         if [[ $DirName == $UserRecyclingDir ]]
         then
              $DirName
         fi

     fi
 done

 #移动目录至回收站
  ]
 then
     echo "Usage:$0 file1 file2 file3 ..."
     ReturnCode=
 else
     #循环开始
     for DelFile in $@
     do
         #判断是否存在文件
         if [ -e $DelFile ]
         then
             echo -e "\n$(date +"%F %H:%M:%S") - Delete $DelFile" >> $RecyclingLog

             mv $DelFile $UserRecyclingDir/$(date +"%F:%H:%M:%S")-$DelFile

             #判断命令是否执行成功
              ]
             then
                 #命令执行成功
                 echo -e "\n$(date +"%F %H:%M:%S") - Delete $DelFile - OK" >> $RecyclingLog
                 echo -e "$(date +"%F %H:%M:%S") - Delete $DelFile - OK"
             else
                 #命令执行失败
                 echo -e "\n$(date +"%F %H:%M:%S") - Delete $DelFile - Fail" >> $RecyclingLog
                 echo -e "\n$(date +"%F %H:%M:%S") - Delete $DelFile - Fail"
                 ReturnCode=
             fi
         else
             #不存在文件
             echo -e "\n$(date +"%F %H:%M:%S") - $DelFile is not exists" >> $RecyclingLog
             echo -e "\n$(date +"%F %H:%M:%S") - $DelFile is not exists"
             ReturnCode=
         fi
     done

     exit $ReturnCode
 fi
 #!/usr/bin/env bash

 RecyclingDir="/usr/local/recycling"
 AudoDelRecyclingLog="/var/log/auto_del_recycling.log"
 errorlog="error.log"

  ]
 then
     for DirName in `ls $RecyclingDir`
     do
         if [ -d $RecyclingDir\/$DirName ]
         then
                 for FileName in `ls $RecyclingDir\/$DirName`
                 do

                         NowDate=$(date +"%s")
                         GetFile=$(stat -c %X $RecyclingDir\/$DirName\/$FileName)
                         DifferTime=$(echo "value=0;$NowDate - $GetFile" | bc)

                          ]
                         then
                                 echo -e "$(date +"%F_%H:%M:%S")-Deleteing $RecyclingDir $DirName(type $DirName is:$(file $RecyclingDir\/$DirName\/$FileName))" >> $AudoDelRecyclingLog
                                 rm -rf $RecyclingDir\/$DirName\/$FileName
                                 echo -e "$(date +"%F_%H:%M:%S")-Deleted $RecyclingDir $DirName $FileName OK" >> $AudoDelRecyclingLog
                         fi
                 done

         else
                 echo -e "$(date +"%F_%H:%M:%S")-$DirName is not dirctory(type $DirName is:$(file $RecyclingDir\/$DirName))" >> $AudoDelRecyclingLog
         fi
     done
 else
         echo -e "$(date +"%F_%H:%M:%S")-The User ID is not root,please login root exec(uid:`id -u`)" >> $errorlog
 fi

shell实现linux回收站的功能的更多相关文章

  1. Linux学习笔记(15)shell基础之Bash基本功能

    1 shell概述 shell是一个命令解释器,为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序.用户可以用shell启动.挂起.停止甚至是编写一些程序. shell是一个功能强大 ...

  2. linux shell 和linux 命令的区别?windows shell 和 windows 命令呢?

    shell翻译成壳的意思,它是包裹在linux内核外层的,一个可通过一系列的linux命令对操作系统发出相关指令的人机界面. shell可以通过其条件语句和循环语句等,把一系列linux命令结合在一起 ...

  3. 打造Linux回收站

    linux是没有回收站概念的,一旦误删除文件了是很难很难找回来的,对普通用户而言误删除文件就等于永久性不可逆丢失数据了:不过可以改造一下rm命令来变相实现回收站功能,实际上就是mv命令转移文件到指定路 ...

  4. shell在linux里摇摇晃晃

    1.shell不只是一种解释器,还是一种编程工具 查看系统中可用的shell,linux默认使用 Bash Shell [root@localhost ~]# cat /etc/shells /bin ...

  5. 利用shell脚本实现计划任务功能 V1.2

    2013.05.10  mytask 1.2 主程序休眠时间分成若干小的时间片断分段休眠,避免长时间的休眠不能及时响应系统信号. 2013.05.07 mytask 1.1 昨天发布了mytask1. ...

  6. 【Microsoft Azure 的1024种玩法】六、使用Azure Cloud Shell对Linux VirtualMachines 进行生命周期管理

    [文章简介] Azure Cloud Shell 是一个用于管理 Azure 资源的.可通过浏览器访问的交互式经验证 shell. 它使用户能够灵活选择最适合自己工作方式的 shell 体验,本篇文章 ...

  7. linux回收站设计

    linux回收站设计 在windows下有一个很好的东西,那就是回收站,虽然有很多人批评它.linux不是没有回收站,很多桌面环境都可以看到是有回收站的. 这里是讨论如何设计一个回收站,而不是有没有的 ...

  8. 分享:shell去掉linux配置文件的注释行

    如何通过shell去掉Linux配置文件中的注释行呢? 本文给出两种解决方法,供大家参考. 方法1.使用grep -v "^#" 来去掉注释行,其中:-v 表示取反 ^# 表示注解 ...

  9. 基于LINUX的多功能聊天室

    原文:基于LINUX的多功能聊天室 基于LINUX的多功能聊天室 其实这个项目在我电脑已经躺了多时,最初写完项目规划后,我就认认真真地去实现了它,后来拿着这个项目区参加了面试,同样面试官也拿这个项目来 ...

随机推荐

  1. Java面试基础知识(1)

    1.final, finally, finalize的区别 final:修饰符(关键字)如果一个类被声明为final,没有子类也不能被继承.因此一个类不能既被声明为 abstract的,又被声明为fi ...

  2. div指令和mul指令

    div是除法指令,使用div做除法时需要注意: 1)除数:有8位和16位两种,在一个寄存器或者内存单元中 2)被除数:默认存放在AX或DX和AX中.如果除数为8位,被除数则为16位,默认在AX中存放: ...

  3. HTTP协议介绍(POST、GET、Content-Type)

    什么是HTTP?超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议.HTTP/1.1 协议规定的 HTTP 请求方法 ...

  4. hdu 1983(BFS+DFS) 怪盗Kid

    http://acm.hdu.edu.cn/showproblem.php?pid=1983 首先,题目要求出口和入口不能封闭,那么,只要把出口或入口的周围全给封闭了那盗贼肯定无法成功偷盗,出口或入口 ...

  5. Oracle VM VirtualBox如何设置网络地址转换NAT

    使用VirtualBox 安装好服务器后,需要设置网络,如果有IP, 则可以直接连接物理网络了, 如果没有,则可以直接使用NAT网络.设置方便快速. 先将虚拟机中的网络设置为自动获取,然后点击Virt ...

  6. python提取百度经验<标题,发布时间,平均流量,总流量,具体的链接>

    之前想研究下怎么抓网页数据.然后就有了下面的练习了. 如有BUG.也纯属正常. 只是练习.请勿投入产品使用. #!/usr/bin/python # -*- coding: utf-8 -*- #Fi ...

  7. wcf 使用sqlMembership证书认证

    .接口 namespace Aretch.WcfService.Services.Interface { [ServiceContract] public interface ICalculator ...

  8. Hadoop知识点

    1.小文件合并:如果文件有一定的规律或者是在同一个文件夹下,可以采用获取文件夹下所有的文件,通过流进行合并,然后再存到hdfs上. 2.mapreduce的优点:1.离线计算.2.高容错性,一个节点挂 ...

  9. java CyclicBarrier的介绍和使用

    一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point).在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarri ...

  10. js中将斜杠\替换的方法

    js中将/替换的方法replace(/\//g, '-') 中间涉及到js的一些转义问题,试了几个方法,发现这个可以,就记下来.