linux shell批量拷贝文件


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中运行成功。)
[plain] 
#/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  
 
来源:http://blog.csdn.net/rentiansheng/article/details/8851684

相关内容

    暂无相关文章