linux shell批量拷贝文件

    有时候我们需要将一个文件拷贝好几分。批量添加用户也是同样的原理的。

使用到的知识:

test 或 [ :可用来表示比较的

算数比较
-eq    相等
-ne    不等
-gt    大于
-ge    大于等于
-lt    小于
-le    小于等于
!    取反

文件条件测试
-d  是否为目录
-f    是否为文件
-g    文件的set-group-id位是否被设置
-r    文件是否可读
-s    文件是否不为空白文件,文件大小不为零,结果为真。
-u    文件的set-user-id为是否被设置
-w    文件是否可写
-x    文件是否可以执行

获取运行时传递的参数
$1、$2....$n :表示得到第1个,第2个。。。。第n个参数。(不包括文件的名字)
$@   被扩展成 "$1" "$2" ... "$n"
$# 参数的个数


if 语句的格式
if condition
then
    statements
else
    statements
fi

while语句的格式
while condition
do
    statements
done


下面直接看代码吧。(由于使用了算数计算。我使用的是bash shell。在ubunut12.04中运行成功。)

#/bin/bash
argc=$#
if [ $argc -lt 2 ]
    then
        echo "请输入两个参数,依次为要拷贝的文件和次数"
        exit 0
    fi
file=$1
count=$2
left=${file%.*}  #取出文件的名字。如a.tar.gz 的结果为a.tar
right=${file##*.}  #得到文件的后缀。如a.tar.gz 的结果为gz
i=0
if [ -f "$file" ]   #判断文件是否存在。
    then
        while [ $i -le $count ]
        do
            cp $file "$left$i.$right"  #"$left$i.$right"组合出新的文件名字
            let "i=$i + 1" #对i的值加一
        done
    else
        echo "$file is not exist\n"
    fi

blog: http://blog.csdn.net/rentiansheng/article/details/8851684
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值