複製目錄初探

複製一個目錄,這個目錄如果有很多子項,可能會耗費大量的時間,並且不可控(你不知道複製了哪些,還剩哪些)。以下的腳本解決這個問題,每複製一個文件或者文件夾,就記錄下來,這樣如果一次沒有複製完,還可以重啓腳本繼續複製。

SRC=/data/temp/src
DEST=/data/tmp/dest
LOGFILE=/data/script/cplog.log
EXISTS=`cat $LOGFILE`

function cpfileordir(){
  tmpdir=$1

  if [[ "$EXISTS" =~ "$tmpdir" ]]
  then echo "copied:$tmpdir"
  else
  echo ">>>>>b $tmpdir<<<<<"
  cp -r $SRC/$tmpdir $DEST/
  echo $tmpdir >> $LOGFILE
  echo "<<<<<e $tmpdir>>>>>"
  fi
}

cd $SRC
for tmpdir in `ls`
do

cpfileordir $tmpdir

done

關於複製文件,當前能想到的有四種方法。

1.cp -r

建議不要一次性複製一個巨量的目錄,將目錄拆分,以上的複製腳本就是一個探索,可以做到進度可控。

2.tar+nc

首先監聽:nc -l 8888 |tar -C /data/temp/dest -zxf -

另起窗口:cd /data/temp/src/ && tar -zcf - image | nc 127.0.0.1 8888

不先cd,造成複製過去就整個文件目錄結構了,ip改爲指定的IP可以實現遠程傳輸。

3.tar壓縮解壓

cd /data/temp/src/ && tar -zcf /data/temp/dest/image.tar.gz image

cd /data/temp/dest && tar -zxf image.tar.gz

4.rsync可以實現遠程傳輸

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