不会写很长,但是通过本文,你一定识货一个神器!7z
u need quiet (有你的快递)(秋天真是收货的季节啊)
(写完发现,好啰嗦啊,但是记录了一个解决问题的过程,希望给看官启发)
换了一台厉害的电脑之后,整个人精神都不一样 :)
去邓平凡老师博客下载一个android 5.1 的source code, 发现下载下来解压就是个难事儿了。
window上面解压啊?呵呵,你试试就知道了,很多文件就是这样被损坏了。
包括push进手机,然后在pull到window电脑的。
这是它那个资源的链接(已经摘录了重要部分,斜线)
http://my.oschina.net/innost/blog/492826
3 android 5.1源码下载
http://pan.baidu.com/s/1bn4fvVT
1 两个文件,先用7zip解压为一个文件
2 里边包含android-5.1.tar.gz(实际上是bzip压缩)和一个external-chromium_org-third_party-angle.git
3 把external-chromium_org-third_party-angle.git 拷贝到external/chromium_org-third_party/angle下
编译的时候要用到
我下载下来是这样的(在samba服务器上)
[email protected]:~/workshare/android5_1$ ll total 5824448 drwxrwxrwx 2 nobody nogroup 4096 Sep 26 08:49 ./ drwxrwxrwx 3 root root 4096 Sep 26 08:24 ../ -rw-rw-rw- 1 nobody nogroup 4290772992 Sep 26 02:53 android-5.1.tar.bzip2-no-repo.7z.001 -rw-rw-rw- 1 nobody nogroup 1673442061 Sep 26 00:54 android-5.1.tar.bzip2-no-repo.7z.002
丫的,是俩分开的文件。
我先喝口coffee。平常window上,那叫一个简单啊,winrar或者好压什么的帮你做了(实际上如果这些工具报错,说部分文件损坏,我们都没有能力取出那些没有损坏的文件,所以你看到咯,我就是码农,不是工程师)
安装7z
sudo apt-get install p7zip
使用方法,7z --help
大致了解了 辅助命令中,有用的就是x了,命令参数有用的有 -r -o -t
可以这样用咯:
#讲papapa.7z递归子文件夹解压到当前目录下(-o后面直接接path路径) 7z x papapa.7z -r -o./
7z x hahaha.7z -r -o /home/merlin/sharework
简单解释如下:
x 解压保留原压缩文件路径
-r 表示递归所有的子文件夹
-o 是指定解压到的目录,这里大家要注意-o后是没有空格的直接接目录
-t (这就是它的神奇之处) 制定类型(在我的实验中,不指定的话,它自己去判断的,多好啊)
实验一下不加-t参数, 7z怎么搞? (为了不浪费大家时间,直接上代码)
上面准备工作已经ok了,打包并压缩了一个 ab.tar.gz的压缩文件
来7z试试解压:
你看到,7z已经给这个压缩文件,剥了一层皮,来再脱它衣服呵呵。
我加-t了么? 没有吧。
难道是 压缩的时候要加 -t ?
before we do our work 试试它的压缩。
压缩文件/目录:(回到上面看看发现,压缩要用到命令a)
先压缩文件看看,我还是不加-t
看来还是需要先打包后压缩啊
(也没有用到-t参数,所以它还是会自动识别的呀)(但是打包和压缩要分两步,还不如直接 tar -zcvf呢)
总结,它的用法是:-t后面紧跟类型
7z a -t7z -r ab.7z /home/merlin/* -o./
7z a ab.7z *.txt -o./
解释如下:
a 代表添加文件/文件夹到压缩包
-t 是指定压缩类型 一般我们定为7z
-r 表示递归所有的子文件夹(压缩文件夹的时候用)
开始解压那个大文件吧:
[email protected]:~/workshare/android5_1$ ll total 5824448 drwxrwxrwx 2 nobody nogroup 4096 Sep 26 08:49 ./ drwxrwxrwx 3 root root 4096 Sep 26 08:24 ../ -rw-rw-rw- 1 nobody nogroup 4290772992 Sep 26 02:53 android-5.1.tar.bzip2-no-repo.7z.001 -rw-rw-rw- 1 nobody nogroup 1673442061 Sep 26 00:54 android-5.1.tar.bzip2-no-repo.7z.002 [email protected]:~/workshare/android5_1$ 7z x android-5.1.tar.bzip2-no-repo.7z.001 android-5.1.tar.bzip2-no-repo.7z.002 -r -o./ 7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,4 CPUs) Processing archive: android-5.1.tar.bzip2-no-repo.7z.001 No files to process Files: 0 Size: 0 Compressed: 4290772992 [email protected]:~/workshare/android5_1$ ll total 5824448 drwxrwxrwx 2 nobody nogroup 4096 Sep 26 08:49 ./ drwxrwxrwx 3 root root 4096 Sep 26 08:24 ../ -rw-rw-rw- 1 nobody nogroup 4290772992 Sep 26 02:53 android-5.1.tar.bzip2-no-repo.7z.001 -rw-rw-rw- 1 nobody nogroup 1673442061 Sep 26 00:54 android-5.1.tar.bzip2-no-repo.7z.002
俩份文件,看来不能这么搞,换一种方式:
[email protected]:~/workshare/android5_1$ $ ls *.7z | xargs -n1 7z x -o./ $: command not found 7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,4 CPUs) Error: Incorrect command line
失败了,再换:
[email protected]:~/workshare/android5_1$ 7z x android-5.1.tar.bzip2-no-repo.7z.00* -r -o./ 7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,4 CPUs) Processing archive: android-5.1.tar.bzip2-no-repo.7z.001 No files to process Files: 0 Size: 0 Compressed: 4290772992
呵呵,真丢人,再换:
[email protected]:~/workshare/android5_1$ 7z x android-5.1.tar.bzip2-no-repo.7z.001 && android-5.1.tar.bzip2-no-repo.7z.00 -r -o./ 7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18 p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,4 CPUs) Processing archive: android-5.1.tar.bzip2-no-repo.7z.001 Extracting external-chromium_org-third_party-angle.git Extracting external-chromium_org-third_party-angle.git/config Extracting external-chromium_org-third_party-angle.git/description Extracting external-chromium_org-third_party-angle.git/HEAD Extracting external-chromium_org-third_party-angle.git/hooks Extracting external-chromium_org-third_party-angle.git/index Extracting external-chromium_org-third_party-angle.git/info Extracting external-chromium_org-third_party-angle.git/logs Extracting external-chromium_org-third_party-angle.git/objects Extracting external-chromium_org-third_party-angle.git/packed-refs Extracting external-chromium_org-third_party-angle.git/refs Extracting external-chromium_org-third_party-angle.git/rr-cache Extracting external-chromium_org-third_party-angle.git/shallow Extracting external-chromium_org-third_party-angle.git/svn Extracting android-5.1.tar.gz Everything is Ok Folders: 1 Files: 14 Size: 5972827149 Compressed: 4290772992
这会儿成功了,&& 好使。(第二压缩文件,拒绝了,我突然发现一件事儿,多个压缩包,你解压第一个就好了)
(猜想:压缩文件解压时也存在入口,多个压缩文件间自己有着关联,不需要你操心)
剩下一个android-5.1.tar.gz,7z再次出场
搞不好是死机了,应该放到bg后台去执行的,没办法再开一个shell, top一下看看,是否还在解压缩:
并没有死机啊,还是在解压缩的,7z is working.......耐心等着咯,吃个茶饼再回来。(我服务器cpu主频2.5GHz双核)
呵呵下面,步骤就类似了,解包之后解压缩,一样的思路:
7z x android-5.1.tar -o./
呼呼地跑啊:
最终完成了
Amazing!!!
ubuntu 系列,一直在跑。
写博客是牺牲了和妹子出去玩的时间的,划不划算,哪有那么重要。
写的很罗嗦,但愿对看官是有帮助的。好了,我去弹钢琴了。 晚上继续搞linux。
merlin
2015/9/26 3:25 pm