Linux 下用shell腳本對SVN 修改的文件進行備份

公司用的版本控制軟件是TortoiseSVN,有時做一個項目時需要在每天下班前,把已經修改的文件做個備份,最笨的方法就是,看哪一個目錄上有紅色感嘆號,然後進入目錄把裏面已經修改的文件一一拷貝出來,拷貝出來放的地方還在創建相同的目錄予區別,方便放回文件。今天在Linux上寫了一個shell腳本,可以在當前目錄下,進行修改文件的收集,然後創建其目錄,再把修改了的文件放入對應目錄中,然後再進行打包。

腳本內容如下:

#!/bin/sh
DIR=modify_file_list_dir
DATE=`date "+%Y-%m-%d"`

if [ ! -d ./${DIR} ];then
 mkdir ./${DIR}
 echo "Create diretory ${DIR}"
fi

#按當前日期創建目錄
if [ ! -d ${DIR}/${DATE} ];then
 mkdir ${DIR}/${DATE}
 echo "Create directory ${DIR}/${DATE}"
fi

#  1,取得svn下文件狀態,被修改的

#  2,取目錄名稱,然後創建目錄

#  3,拷貝文件

# 4,打包,然後刪除文件

 

for file in $(svn status | grep '^M' | awk '{print $2}')
do
 dir=${file%/*}                                     #取目錄名稱
 if [ ! -d ${DIR}/${dir} ];then
  mkdir -p ${DIR}/${DATE}/${dir}    #創建目錄
 fi
 cp ${file} ${DIR}/${DATE}/${dir}    #拷貝文件
done

sleep 2
tar -cvf ./modify.tar.gz ${DIR}/*

rm -rf ${DIR}

用法:

1,將這些腳本放拷貝到一個文件中,加執行權限

2,將文件放到任一目錄下,在該目錄下運行,若該目錄下有已經被修改的文件,腳本會將這些文件打包到modify.tar.gz中

 

上面的腳本可以再多加些變量,讓看起來更簡潔一點,還可以再擴展成爲更強大的功能,網友們可以自行處理。

 

運行結果如第二張圖,修改的目錄一一對應,各目錄下都是已經被修改的文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章