想把服务器上的一大批文件下回本地,本以为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
不知道该如何将压缩包的名字设置为原来的名字,求大佬赐教。。