tar壓縮目錄下所有文件到單獨的壓縮包並刪除源文件


想把服務器上的一大批文件下回本地,本以為tar壓縮下就可以,結果發現……

這萬惡的10g空間……直接壓縮是不可能的了。

其次打算直接用ftp傳,看到200k的速度也放棄了……

再不濟用http-server?

足足有3000多文件,等下載完手都廢了……

發現到tar有一個--remove-files的選項 簡直是為小空間服務器量身定做的,但當我帶上參數再壓縮時……空間又滿了。。百度了下才知道這個選項是指全部壓縮完后刪除。那能不能單獨壓縮文件並刪除呢?貼一個腳本:

find . -type f|xargs -I {} tar zcvf {}.tar.gz {}

運行完壓縮包就放在了文件在的目錄。靈感突發其來,貼一段自己寫的

num=0
find . -type f  > filelist.txt
for i in `cat filelist.txt`
do
tar czvf $num.tar.gz --remove-files $i
num=$(($num+1))
done

用screen掛在后台運行。運行效果:

然后用ls | grep gz  > tarlist.txt獲取列表,用迅雷下載回來,再貼一段批量解壓的腳本:

for i in `cat tarlist.txt`
do
tar xzvf $i --remove-files
done

不知道該如何將壓縮包的名字設置為原來的名字,求大佬賜教。。

(如果將兩個腳本結合並放大量大文件 用crontab循環執行可以實現消耗資源的作用?)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM