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获取列表,用wget下载回来,再贴一段批量解压的脚本:
for i in `cat tarlist.txt`
do
tar xzvf $i --remove-files
done
不知道该如何将压缩包的名字设置为原来的名字,求大佬赐教。。
(如果将两个脚本结合并放大量大文件 用crontab循环执行可以实现消耗资源的作用?)
--------------
你已经看完这篇博文了!
本文来自博客园,作者:星如雨yu,转载请注明原文链接:https://www.cnblogs.com/tianpanyu/p/15209912.html
另,建议转载手动看一眼,把代码块转过去呗(超小声嘀咕)