1. 程式人生 > >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個引數。(不包括檔案的名字)
[email protected]
  被擴充套件成 "$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