Linux shell 编程(一)

Linux 完成指定目录文件的删除以及备份

**删除指定目录下的文件夹和文件,并做备份**

代码设计思路

① 首先需要判断没有变量输入的情况,这样的情况无法正常操作。
② 判断输入的变量是否为合理的路径(文件夹)名。
③ 将指定目录下的文件进行备份,复制到固定备份的文件下。
④ 对指定目录下的文件进行删除即可。

函数的说明

函数用法
$#传递给脚本或者函数的参数的个数
-ne不等于
echo返回后面的参数
!不是
-d判断后面参数是否为路径名(文件夹)
$1传给函数的第一个参数
cd打开下一文件夹(路径)
ls展开X目录下的所有文件和文件夹
$?上个脚本或者函数的返回参数,正常运行返回1,不正常则返回0,大多数情况返回1
-eq等于
cp复制文件夹dirA下的所有文件到dirB中
rm删除当前目录下的所有文件及文件夹而且不确认

具体操作

①对实验环境进行了测试:


建立的homework文件夹下有文件shell脚本unload.sh以及load文件夹(目标文件夹),load文件夹下包含四个文件:1.txt,2.txt,3.txt,4.txt。下面将利用脚本将load文件夹下的文件全部备份到统一目录null中,并进行删除。

②运行函数脚本(赋予权限):

在这里插入图片描述

对脚本函数进行授予权限后,可以较为清晰的看到,load中的文件已经完全被备份到了预先设定的目录下,而备份库null中也已经出现了备份的文件。

具体代码

#!/bin/bash

#删除指定目录下的文件以及文件夹并备份

#检查输入的参数是否有效

#输入的参数为零
if [ $# -ne 1 ]
then
	echo "usage:$0<directory>"
	exit
fi	

#输入的参数不是文件夹
if [ ! -d $1 ]
then
	echo "$1 is not a directory"
	exit
fi

#目标目录下文件复制到null文件夹
cp $1/* null

#*/

#展开目标目录
cd $1

#如果参数不为零(含有文件),删除所有文件
if [ $? -eq 0 ]
then
	rm -rf *
else
	echo "A problem has occurred in creating backup"
	echo "The directory will not be creased"
	echo "Please check the backup device"
	exit 3
fi

#end of unload

注:以上思路均来源于网上。文章目的只是为了自己学习总结回顾,欢迎指出错误,相互学习。如有冒犯,请联系删除,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值