shell编程_实现回收站,避免误删文件

代码如下:

下载:https://gitee.com/LoongWang/shellrecycling.git

 1 #/usr/bin/env bash
 2
 3
 4 #定义
 5 #定义回收站目录
 6 RecyclingDir=‘/usr/local/recycling/‘
 7 #定义回收站log文件
 8 RecyclingLog=‘/var/log/recyclinglog‘
 9 #定义回收站家目录
10 UserRecyclingDir="/usr/local/recycling/$(whoami)"
11 #定义返回码
12 ReturnCode=0
13
14 #程序开始
15 #检测主文件是否存在、没有则新建
16
17 for DirName in $RecyclingDir $UserRecyclingDir
18 do
19     if [ ! -d $DirName ]
20     then
21         #将Log写入文件中
22         echo "$(date +"%F %H:%M:%S") - Make Dirctory" >> $RecyclingLog
23         #创建目录
24         mkdir $DirName
25
26         if [ $? -eq 0 ]
27         then
28             echo "$(date +"%F %H:%M:%S") - Make Dirctory $DirName Ok" >> $RecyclingLog
29         else
30             echo "$(date +"%F %H:%M:%S") - Make Dirctory $DirName Fail" >> $RecyclingLog
31             echo "$(date +"%F %H:%M:%S") - Make Dirctory Fail"
32
33             ReturnCode=127
34             echo -e "The Linux Comamnd is error , returncode:127\n"
35             echo "$(date +"%F %H:%M:%S") - Make Dirctory Fail"
36             echo "Your can see log the $RecyclingLog"
37
38             exit $ReturnCode
39         fi
40
41     fi
42 done
43
44 #移动目录至回收站
45 if [ $# -eq 0 ]
46 then
47     echo "Usage:$0 file1 file2 file3 ..."
48     ReturnCode=1
49 else
50     #循环开始
51     for DelFile in [email protected]
52     do
53         #判断是否存在文件
54         if [ -e $DelFile ]
55         then
56             echo -e "\n$(date +"%F %H:%M:%S") - Delete $DelFile" >> $RecyclingLog
57             mv $DelFile $UserRecyclingDir
58
59             #判断命令是否执行成功
60             if [ $? -eq 0 ]
61             then
62                 #命令执行成功
63                 echo -e "\n$(date +"%F %H:%M:%S") - Delete $DelFile - OK" >> $RecyclingLog
64                 echo -e "$(date +"%F %H:%M:%S") - Delete $DelFile - OK"
65             else
66                 #命令执行失败
67                 echo -e "\n$(date +"%F %H:%M:%S") - Delete $DelFile - Fail" >> $RecyclingLog
68                 echo -e "\n$(date +"%F %H:%M:%S") - Delete $DelFile - Fail"
69                 ReturnCode=1
70             fi
71         else
72             #不存在文件
73             echo -e "\n$(date +"%F %H:%M:%S") - $DelFile is not exists" >> $RecyclingLog
74             echo -e "\n$(date +"%F %H:%M:%S") - $DelFile is not exists"
75             ReturnCode=1
76         fi
77     done
78
79     exit $ReturnCode
80 fi

原文地址:https://www.cnblogs.com/wang-li/p/8407499.html

时间: 2024-11-09 12:34:07

shell编程_实现回收站,避免误删文件的相关文章

[ SHELL编程 ] 文件内容大小写替换

shell编程经常会碰到字符串.文件内容大小写的转换,在不同的场景下选择合适的命令可以提高编程效率. 适用场景 需大小写转换的文件内容或字符串 字符串大小写替换 小写替换大写 echo "hello world" | tr '[a-z]' '[A-Z]' echo "hello world" | tr '[:lower:]' '[:upper:]' 大写替换小写 echo "hello world" | tr '[A-Z]' '[a-z]' ec

05 shell编程之正则表达式

正则表达式&&文本处理利器 学习目标: l  掌握正则表达式的运用 l  掌握sed.awk文本处理工具的使用 目录结构:   正则表达式 正则表达式概述 l  正则表达式:使用单个字符串来描述,匹配一系列符合某个句法规则的字符串 l  由普通字符与特殊字符组成 l  一般用在脚本编程,文本编辑器中,如php.Python.shell等,简写为regex.regexp.RE l  用来检索.替换符合模式的文本,具有强大的文本匹配功能 l  能够在文本海洋中快速高效地处理文本 l  正则表达

想要恢复回收站误删文件,就用EasyRecovery!

不知道大家在日常工作中遇到回收站误删文件的情况吗?遇到这样的情况,不要慌张,可以借助专业的数据恢复软件来处理.EasyRecovery软件是由全球著名数据厂商Kroll Ontrack出品的数据恢复软件.支持恢复不同存储介质数据:硬盘.光盘.U盘/移动硬盘.数码相机.手机等,能恢复包括文档.表格.图片.音视频等各种数据文件.能够进行有效的恢复. EasyRecovery年终钜惠活动进行中,访问http://www.easyrecoverychina.com/index.php?page=goum

SHELL编程练习-获得指定目录下的所有文件及文件夹的大小

一.目的编写一个脚本,可以获得指定目录下的所有文件及文件夹的大小.输出的样式与 ls -lh 命令相同.命令执行示例,其中和 ls -lh 命令输出的唯一区别是目录的大小:1.1.ls -lh命令的输出(注意目录大小) [[email protected] ~]# ls -lh /root/dir1/ total 24M drwxr-xr-x 3 root root 4.0K Feb 6 13:54 dir2 drwxr-xr-x 2 root root 4.0K Feb 6 13:55 dir

shell编程面试必会30题

来源:<跟老男孩学Linux运维>Shell编程实战 面试题1:批量生产随机字符文件名 代码: [email protected]:/home/dell/shell# vim creat_ten_htmlfile.sh  #!/bin/bash #Date: 2017-8-25 #Author: XianWei Path=/tmp/shelltmp [ -d "$Path" ] || mkdir -p $Path                #如果测试结果为假,就执行mk

Linux Unix shell 编程指南学习笔记(第一部分)

第一章:文件安全与权限: 1.文件和目录的权限 创建文件时系统保存了文件所有相关的信息,包括 文件的位置 . 文件类型 . 文件长度 . 哪位用户拥有该文件,哪些用户可以访问该文件 . i 节点 . 文件的修改时间 . 文件的权限位 . 文件类型: d: 目录 l : 符号链接(指向另一个文件) s: 套接字文件 b: 块设备文件 c: 字符设备文件 p: 命名管道文件 -: 不属于上述类型的文件 文件权限 XXX       XXX        XXX 最左边 XXX : 文件属主 权限位

Linux下的shell编程入门

通常情况下,我们从命令行输入命令每输入一次就能够得到系统的一次响应.一旦需要我们一个接着一个的输入命令而最后才得到结果的时候,这样的做法显然就没有效率.要达到这样的目的,通常我们利用shell程序或者shell脚本来实现. 一.简介 Shell编程有很多类似C语言和其他程序语言的特征,但是又没有编程语言那样复杂.Shell程序就是放在一个文件中的一系列Linux命令和实用程序,在执行的时候,通过Linux一个接着一个地解释和执行每个命令. 下面我们来看一个简单的shell程序: 1.首先建立一个

Bash shell编程基础

1.何谓shell script shell script是利用shell的功能写一个"程序",这个程序是使用纯文本文件,将一些shell的语法与命令(包括外部命令)写在里面,搭配正则表达式,管道命令与数据流重定向,条件判断语句等功能,以达到我们所想要的处理目的. 2.脚本或程序源文件都是纯文本文件. 3.脚本或程序的执行一般有两种方式: 编译执行:预处理-->编译-->汇编-->链接:编译执行是一种计算机语言的执行方式. 由编译程序将目标代码一次性编译成目标程序,再

Shell编程积累 zhuan

在新的shell里执行程序 cd /home/lq/Server/anew-lstm_scriptmatlab -nodesktop -singleCompThred -r 'aStart' ,quit & SLAVE_PID=$!;#echo "sh ./slaveRun.sh localhost 10000 localhost localhost" | xfce4-terminalsleep 3xfce4-terminal -x sh ./slaveRun.sh local