shell删除和复制文件(带文件名更新)

本文介绍了如何使用Shell脚本来删除一个.war文件,并将其复制到另一位置,同时在复制的文件名后添加日期。脚本接受两个参数,第一个参数是不含扩展名的文件名,第二个参数是日期。通过示例代码详细展示了删除操作和复制操作的实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为复制的文件复制之后要在文件名后面加上日期,所以在运行shell的时候输入了两个参数。删除的文件和复制的文件都是.war结尾的,第一个参数是去除文件格式(也就是“.war”)的文件名,第二个参数是要添加的日期

运行shell的指令是:“./test.sh demo 20161221”(这里我是直接在test.sh这个shell所在目录下运行的,所以直接在前面加./,如果在其它目录下的话要写清楚路径,demo就是要复制的demo.war的文件名,同时也是要删除的目录demo的目录名,参数之间注意一个空格)

shell代码:

​#! /bin/bash

cd /opt/tomcat7/webapps       #要删除的demo目录所在的路径

var1="$1"          #shell中用$1来获取第一个输入的参数,同理$2为第二个参数

var2="$2"

sourceFile="${var1}.war"   #这是要复制的原文件名,demo.war,这里用了字符串拼接

fileName="${var1}${var2}pepp.war"   #使用变量的时候最好将变量名用中括号括起来

echo "The file selected is ${var1}"

if [ -e $var1 ]           #注意if括号中的空格,-e代表查看demo这个文件是否存在

then

rm -rf $var1      #强制删除目录和目录下子文件

echo "$var1 is delected"

else

echo "$var1 does not exist"

fi   #倒写的if结束if语句

cd /root/Desktop/backup   切换到复制的源文件所在目录

cp -i ${sourceFile} /opt/tomcat7/webapps/${fileName}   #复制到指定目录并更名

echo "${fileName} is copied"


注:

1.如果不想在输入指令的时候输入参数,可以用read读取用户输入,代码中将var1和var2的值变一下:

echo "Please input the name of file"

read var1

echo "Please input the data"

read var2​

这样在运行./shell的时候会出现提示输入的信息,然后按提示输入即可​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值