shell刪除指定目錄下的svn目錄

在發佈或是部署一些項目時,需要先將資源上傳到服務器。環境一般分爲:本機、內網、公網,公網的話,考慮帶寬問題,一般不允許將.svn目錄和Thumbs.db文件上傳上去,這樣需要先導出項目文件,如果工程較大,導出可能還比較慢。內網的話,爲了方便,我一般就是上傳內網時,把項目裏的文件夾直接上傳至內網服務器,然後使用shell命令再刪除.svn目錄和Thumbs.db文件。

直接在終端下使用VI進行編輯,然後輸入shell程序,保存、退出,需要使用時直接調用sh xxx.sh ‘目錄路徑’即可。

完整的shell程序:

echo 'start~'
#echo $1
 
if [ -z $1 ]; then 
    echo 'please input you need del directory!';
    exit;
elif [ ! -d $1 ]; then
    echo "$1 is not directory";    
else
    cd $1;
    echo "change path $1";
    find . -type d -name ".svn" |xargs rm -rvf;
    find . -type f -name "Thumbs.db" |xargs rm -rvf;    
fi;

之前沒接觸過shell,所以記錄一下,以免事後忘記了。

上述代碼 $1爲調用shell時傳入的參數 $0爲shell文件名

-z $1  則是判斷是否有參數的輸入

-d $1  判斷傳入的參數是否爲一個目錄,檢測是否爲文件,使用-f

find 指令 後跟着 需要查找的目錄

    -type 需要查找的類型,常用一般爲 –d –f (還有其它參數,可以使用--help查看)

    -name 使用文件名對查找的文件/文件夾進行過濾

    xargs 是將前面獲取前面查找的所有參數,因爲後述參數的傳遞有上限

rm 刪除文件及目錄

     -f 強制刪除

     -r 遞歸處理

    -v 顯示執行的過程 (其它參數可以使用--help進行查看)

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