科学网

 找回密码
  注册

tag 标签: 压缩

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

[转载]linux tar.gz zip 解压缩 压缩命令
xiaoyutianya 2014-12-18 22:24
http://apps.hi.baidu.com/share/detail/37384818 download ADT link http://dl.google.com/android/ADT-0.9.6.zip download SDK link http://dl.google.com/android/android-sdk_r11-linux_x86.tgz (可以通过翻墙得到具体的文件名,再通过链接下载即可) tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。 -z:有gzip属性的 -j:有bz2属性的 -Z:有compress属性的 -v:显示所有过程 -O:将文件解开到标准输出 下面的参数-f是必须的 -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。 # tar -cf all.tar *.jpg 这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。 # tar -rf all.tar *.gif 这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。 # tar -uf all.tar logo.gif 这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。 # tar -tf all.tar 这条命令是列出all.tar包中所有文件,-t是列出文件的意思 # tar -xf all.tar 这条命令是解出all.tar包中所有文件,-x是解开的意思 压缩 tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg tar –czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2 tar –cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux 解压 tar –xvf file.tar //解压 tar包 tar -xzvf file.tar.gz //解压tar.gz tar -xjvf file.tar.bz2 //解压 tar.bz2 tar –xZvf file.tar.Z //解压tar.Z unrar e file.rar //解压rar unzip file.zip //解压zip 总结 1、*.tar 用 tar –xvf 解压 2、*.gz 用 gzip -d或者gunzip 解压 3、*.tar.gz和*.tgz 用 tar –xzf 解压 4、*.bz2 用 bzip2 -d或者用bunzip2 解压 5、*.tar.bz2用tar –xjf 解压 6、*.Z 用 uncompress 解压 7、*.tar.Z 用tar –xZf 解压 8、*.rar 用 unrar e解压 9、*.zip 用 unzip 解压
个人分类: linux|1475 次阅读|0 个评论
VirtualBox压缩虚拟磁盘文件
outcrop 2014-9-15 09:06
Host系统为Debian Linux,Guest为Windows。 Guest系统下安装sdelete http://technet.microsoft.com/en-us/sysinternals/bb897443 后运行: sdelete -z 然后Host下运行: VBoxManage modifyhd mydisk.vdi --compact 延伸阅读: VirtualBox压缩磁盘文件
个人分类: 计算机应用技术|4102 次阅读|0 个评论
运动了?七八年就来一次?
热度 1 罗非 2013-7-23 09:49
早上收到一封信,信中一开始就写着: 财政部近日发出《通知》,要求中央国家机关各部门对2013年一般性支出统一按5%比例压减。《通知》指出,中央国家机关各部门要重点压减办公楼和业务用房建设及修缮支出、会议费、办公设备购置费、差旅费、车辆购置和运行经费、公务接待费、因公出国(境)经费等。《通知》同时要求,各部门要进一步加强财政支出管理,调整和优化支出结构,支持经济结构调整和产业升级,保障和改善民生,把有限的财政资金用到刀刃上,提高财政资金使用效益,促进经济社会又好又快发展。 然后,就说所有的 公用经费和项目经费都要按比例压缩。一律压缩5%。科研项目经费一律按比例压缩5%?这也是中央国家机关经费? 然后就想到了若干年前,中国大地上曾经有过一次这样大规模地应用5%这个比例。虽然,那一次大家强调的是95%。 什么时候才能认真对待手头的事情,而不是按比例摊派? 补充一下,据说新任财政部长楼继伟的爱好是高尔夫球。 http://www.igaosheng.com/2013/0318/14113_3.html
个人分类: 生活点滴|3767 次阅读|1 个评论
pdf合并、压缩技巧
anywei 2012-10-25 17:09
上传项目报告的时候,常会需要把多个文档合并成一个pdf文档,并且文档的大小要限制在多少以内。一个小技巧就是,在2010word里分别另存为pdf文档后,用pdfbinder这个很小巧的程序合并输出为单个PDF。然后用另一个小巧的程序pdfshrink生成不同压缩比率的Pdf,满足上传需要。两个小程序胜在小巧和通用性,在32和64位上都可使用,整个过程一气呵成,2分钟内搞定。
2210 次阅读|0 个评论
科学网博文引用地址的大幅缩短方法
陈龙珠 2012-8-1 08:23
或许因为科学网博文的原始地址很长,系统在每篇博文正文下面提供了一个缩短了的引用地址,以便引用。 有注册新浪或其它微博的网友,可进一步缩短这个引用地址: 如,点击博文正文左下角“分享到”中的新浪微博标志,若微博处于登录状态,则便可复制新浪微博压缩后这篇博文的引用地址了,之后取消分享操作即可。 例:本博一篇科学网博文的原始地址(很长) http://blog.sciencenet.cn/home.php?mod=spaceuid=39070do=blogid=595584 科学网压缩后提供的引用地址 http://blog.sciencenet.cn/blog-39070-595584.html 经上述新浪微博再压缩后的引用地址 http://t.cn/zWS3KWe 缺点是,经再压缩后的博文引用地址,已无科学网的溯源指示信息。
个人分类: 生活点滴|4164 次阅读|0 个评论
[转载]unix下常用解压和压缩命令
plgongcat 2012-5-28 15:33
unix下常用解压和压缩命令 freeflyer - by - 2007-8-8 9:18:00 2 推荐 .tar 解包: tar xvf FileName.tar 打包:tar cvf FileName.tar DirName --------------------------------------------- .gz 解压1:gunzip FileName.gz 解压2:gzip -d FileName.gz 压缩:gzip FileName .tar.gz 解压:tar zxvf FileName.tar.gz 压缩:tar zcvf FileName.tar.gz DirName --------------------------------------------- .bz2 解压1:bzip2 -d FileName.bz2 解压2:bunzip2 FileName.bz2 压缩: bzip2 -z FileName .tar.bz2 解压:tar jxvf FileName.tar.bz2 压缩:tar jcvf FileName.tar.bz2 DirName --------------------------------------------- .bz 解压1:bzip2 -d FileName.bz 解压2:bunzip2 FileName.bz 压缩:未知 .tar.bz 解压:tar jxvf FileName.tar.bz 压缩:未知 --------------------------------------------- .Z 解压:uncompress FileName.Z 压缩:compress FileName .tar.Z 解压:tar Zxvf FileName.tar.Z 压缩:tar Zcvf FileName.tar.Z DirName --------------------------------------------- .tgz 解压:tar zxvf FileName.tgz 压缩:未知 .tar.tgz 解压:tar zxvf FileName.tar.tgz 压缩:tar zcvf FileName.tar.tgz FileName --------------------------------------------- .zip 解压:unzip FileName.zip 压缩:zip FileName.zip DirName --------------------------------------------- .rar 解压:rar a FileName.rar 压缩:rar e FileName.rar
个人分类: unbutu常见问题|1842 次阅读|0 个评论
[转载]压缩感知和稀疏化表示
tudousi 2011-12-19 22:34
直接给个链接,省的转来转去的。 主要是受张猛的影响,想看看稀疏化表示,看有什么启发。 http://bbs.sciencenet.cn/home.php?mod=spaceuid=353784do=blogid=498021
2927 次阅读|0 个评论
[转载]不确定性原理的前世今生 · 数学篇(二)
QIQIZHU 2011-11-26 21:09
傅立叶变换这种对偶关系的本质,是把一块信息用彻底打乱的方式重新叙述一遍。正如前面所提到的那样,一个信号可能在空域上显得内容丰富,但是当它在 频域上被重新表达出来的时候,往往就在大多数区域接近于零。反过来这个关系也是对称的:一个空域上大多数区域接近于零的信号,在频域上通常都会占据绝大多 数频率。 有没有一种信号在空域和频域上的分布都很广泛呢?有的,最简单的例子就是噪声信号。一段纯粹的白噪声,其傅立叶变换也仍然是噪声,所以它在空域和频 域上的分布都是广泛的。如果用信号处理的语言来说,这就说明「噪声本身是不可压缩的」。这并不违反直觉,因为信号压缩的本质就是通过挖掘信息的结构和规律 来对它进行更简洁的描述,而噪声,顾名思义,就是没有结构和规律的信号,自然也就无从得以压缩。 另一方面,有没有一种信号在空域和频域上的分布都很简单呢?换句话说,存不存在一个函数,它在空间上只分布在很少的几个区域内,并且在频域上也只占用了很少的几个频率呢?(零函数当然满足这个条件,所以下面讨论的都是非零函数。) 答案是不存在。这就是所谓的 uncertainty principle(不确定性原理)。 这一事实有极为重要的内涵,但是其重要性并不容易被立刻注意到。它甚至都不是很直观:大自然一定要限制一个信号在空间分布和频率分布上都不能都集中在一起,看起来并没有什么道理啊。 这个原理可以被尽量直观地解释如下:所谓的频率,本质上反应的是一种长期的全局的趋势,所以任何一个单一的频率,一定对应于一个在时空中大范围存在的信号。反过来,任何只在很少一块时空的局部里存在的信号,都存在很多种不同的长期发展的可能性,从而无法精确推断其频率。 让我们仍然用音乐来作例子。声音可以在时间上被限制在一个很小的区间内,譬如一个声音只延续了一刹那。声音也可以只具有极单一的频率,譬如一个音叉 发出的声音(如果你拿起手边的固定电话,里面的拨号音就是一个 440Hz 的纯音加上一个 350Hz 的纯音,相当于音乐中的 A-F 和弦)。但是不确定性原理告诉我们,这两件事情不能同时成立,一段声音不可能既只占据极短的时间又具有极纯的音频。当声音区间短促到一定程度的时候,频率 就变得不确定了,而频率纯粹的声音,在时间上延续的区间就不能太短。因此,说「某时某刻那一刹那的一个具有某音高的音」是没有意义的。 这看起来像是一个技术性的困难,而它实际上反映出却是大自然的某种本质规律: 任何信息的时空分辨率和频率分辨率是不能同时被无限提高的。 一种波动在频率上被我们辨认得越精确,在空间中的位置就显得越模糊,反之亦然。 这一规律对于任何熟悉现代多媒体技术的人来说都是熟知的,因为它为信号处理建立了牢不可破的边界,也在某种程度上指明了它发展的方向。既然时空分辨 率和频率分辨率不能同时无限小,那人们总可以去研究那些在时空分布和频率分布都尽量集中的信号,它们在某种意义上构成了信号的「原子」,它们本身有不确定 性原理所允许的最好的分辨率,而一切其他信号都可以在时空和频率上分解为这些原子的叠加。这一思路在四十年代被 D. Gabor (他后来因为发明全息摄影而获得了 1971 年的诺贝尔物理奖)所提出,成为整个现代数字信号处理的奠基性思想,一直影响到今天。 但是众所周知,不确定性原理本身并不是数学家的发明,而是来自于量子物理学家的洞察力。同样一条数学结论可以在两个截然不相干的学科分支中都产生历史性的影响,这大概是相当罕见的例子了。
个人分类: 醍醐灌顶文|1910 次阅读|0 个评论
JPEG 压缩原理 --- dctmtx 函数的应用
zjzhang 2011-11-20 22:46
JPEG 压缩原理 --- dctmtx 函数的应用
clear all; I=imread('cameraman.tif'); figure(1); imshow(I);title('原始图像'); I=im2double(I); D=dctmtx(8); % 系数取舍矩阵 mask= ; Bdct=blkproc(I, ,'P1*x*P2',D,D'); % 用 D*A*D' 来计算离散余弦变换 Bch=blkproc(Bdct, ,'P1.*x',mask); % 系数选择 Bidct=blkproc(Bch, ,'P1*x*P2',D',D); % 离散余弦逆变换 figure(2); imshow(Bidct);title('解压图像'); 注:1. 先把图像分为 8×8 块,然后用 dctmtx 分别对每个子图像进行离散余弦变换,对变换系数仅保留左上角的 15 个值 (5+4+3+2+1),然后对这 15 个系数进行离散余弦逆变换重新得到各个子图像,再用 dctmtx 进行重构。 2. 仅用 8×8 = 64 中的 15 个就能有较好的视觉效果。
个人分类: 图像分析(matlab,PDE)|10422 次阅读|0 个评论
review: 压缩传感 and 压缩感知 综述
jiangdm 2011-10-29 23:28
review: 压缩传感 and  压缩感知 综述
Contents 1 压缩传感综述 2 压缩感知 《压缩传感综述》,李树涛 魏丹 自动化学报 2009 年11 月 摘要 在传统采样过程中, 为了避免信号失真, 采样频率不得低于信号最高频率的2 倍. 然而对于数字图像、视频的获取, 依照香农(Shannon) 定理会导致海量采样数据, 大大增加了存储和传输的代价. 近年来, 一种新兴的压缩传感理论为数据采集技术带来了革命性的突破, 得到了研究人员的广泛关注. 压缩传感采用非自适应线性投影来保持信号的原始结构, 能通过数值最优化问题准确重构原始信号. 压缩传感以远低于奈奎斯特频率进行采样, 在压缩成像系统、模拟/信息转换、生物传感等领域有着广阔的应用前景. 本文主要介绍了压缩传感的基本理论及相关应用, 并对其研究前景进行了展望. 关键词: 压缩传感, 稀疏表示, 信号重构, 约束等距性, 压缩成像 New Question: 如果信号本身是可压缩的,那么是否可以直接获取其压缩表示(即压缩数据), 从而略去对大量无用信息的采样呢? 压缩传感理论基础 压缩传感概念 核心思想: 将压缩与采样合并进行, 首先采集信号的非自适应线性投影(测量值), 然后根据相应重构算法由测量值重构原始信号. 优点: 信号的投影测量数据量远远小于传统采样方法所获的数据量 压缩传感理论 主要包括: 1)信号的稀疏表示 2)编码测量 3)重构算法 the outline of this paper: 1) 第1 节对其进行了介绍; 2) 第2 节介绍了压缩传感基本原理; 3) 第3 节研究了压缩传感测量矩阵; 4) 第4 节讨论了信号重构算法; 5) 第5 节介绍压缩传感的应用; 6) 最后对压缩传感领域的研究前景进行展望. 1 信号稀疏表示 2 压缩传感 1) 首先考虑一般的信号重构问题 重要问题: 测量矩阵的设计和稀疏信号的重构 3 测量矩阵 4 信号重构算法 4.1 最小 范数法 4.2 匹配追踪算法 匹配追踪算法(Matching pursuit, MP) 4.3 最小全变分法 4.4 迭代阈值法 5 压缩传感的应用 5.1 压缩成像 RICE 大学: 单像素 压缩数码照相机 5.2 信道编码 5.3 模拟/信息转换 5.4 生物传感 6 总结与展望 关键问题: 1) 测量矩阵构造研究 2) 测量矩阵的优化问题 3) 测量值的应用研究 4) 图像超分辨率重构 5) 运动目标提取 6) 实时压缩传感成像系统研制 以下引用百度百科,: 奈奎斯特采样定理: 采样率不小于最高频率的两倍(该采样率称作Nyquist采样率)。 瓶颈: (1)Nyquist采样率是信号精确复原的充分条件,但非必要条件。 (2)除带宽可作为先验信息外,实际应用中的大多数信号/图像中拥有大量的structure。由贝叶斯理论可知:利用该structure信息可大大降低数据采集量。 (3) Johnson-Lindenstrauss理论表明:以overwhelming性概率,K+1次测量足以精确复原N维空间的K-稀疏信号。 关键问题: 如何突破以Nyquist-Shannon采样理论为支撑的信息获取、处理、融合、存储及传输等方式? D. Donoho(美国科学院院士)、E. Candes(Ridgelet, Curvelet创始人)及华裔科学家T. Tao(2006年菲尔兹奖获得者)等人提出了一种新的信息获取指导理论,即, 压缩感知或压缩传感(Compressive Sensing(CS) or Compressed Sensing、Compressed Sampling) 。 香港大学 沙威 《压缩传感引论》: Compressive_Sensing.pdf 压缩传感综述.pdf 压缩感知研究 戴琼海 付长军 季向阳 计算机学报 2011-3 摘 要   经典的香农采样定理认为,为了不失真地恢复模拟信号,采样频率应该不小于奈奎斯特频率(即模拟信号频谱中的最高频率)的两倍.但是其中除了利用到信号是有限带宽的假设外,没利用任何的其它先验信息.采集到的数据存在很大程度的冗余.Donoho等人提出的压缩感知方法(Compressed Sensing / Compressive Sampling, CS)充分运用了大部分信号在预知的一组基上可以稀疏表示这一先验信息,利用随机投影实现了在远低于奈奎斯特频率的采样频率下对压缩数据的直接采集.该方法不仅为降低采样频率提供了一种新思路,也为其它科学领域的研究提供了新的契机.该文综述性地阐述了压缩感知方法的基本原理,给出了其中的一些约束问题和估计方法,并介绍压缩感知理论的相关问题———矩阵填充,最后讨论了其未来可能的应用前景. 关键词 压缩感知;贪婪算法;线性规划;随机投影 1 引 言 压缩感知采集方法: 并不是对数据直接进行采集,而是通过一组特定波形去感知信号,即将信号投 影到给定波形上面(衡量与给定波形的相关度),感知到一组压缩数据.最后利用最优化的方法实现对 压缩数据解密,估计出原始信号的重要信息. 压缩感知关键问题: 如何给定用来感知信号的波形才能有效地恢复出原始信号的重要信息? the organization of this paper: 1) 第2节和第3节介绍压缩感知方法和其中的约束条件; 2) 第4节讨论压缩感知方法的鲁棒性; 3) 第5节列举压缩感知中通常采用的信息获取方法; 4) 第6节进一步讨论压缩感知的一种拓展问题———矩阵填充问题(matrix completion); 5) 第7节阐述了压缩感知方法在不同领域的应用; 2 压缩感知原理 I comment: Compress sensor has tight relationship with stream sampling in data mining. 压缩感知研究.pdf
个人分类: Control|7961 次阅读|0 个评论
[转载]MPQ技术内幕
wqfeng 2011-10-16 17:16
开始尝试翻译一些英文文章,最近正好对mpq产生兴趣,看到一片文章叫做 inside MPQ,于是翻译一下,就当锻炼自己吧。这篇文章非常的不厚道,在关键地方戛然而止,而且没有更新的迹象。让人郁闷无比。但是还是比国内一些研究MPQ的 少的可怜的文章要好些。看了这些文章,无比惋惜国内技术的滞后和黑客技术,逆向工程技术的贫乏。我们总是拿来主义,做应用。自己的原创真的太少了。 LEGAL COPYRIGHTS The MPQ Format The copyrights to the MPQ format are held by Havas Interactive, Blizzard Entertainment's parent company, all rights reserved This Article The copyrights to this document and content are held by Justin Olbrantz(Quantam), all rights reserved. You may freely distribute this document provided that you do not derive profit from the distribution, and that the document remains complete and unchanged. You may quote this document ONLY with my explicit permission. Contact me to obtain permission to quote.Also, although I would appreciate recognition for your use of this information, I will not be held legally responsible for anything you may do with it. Anyway that you misuse this information is your problem, and I will not be responsible for it. 这个LEGAL COPYRIGHTS我就不做翻译了。a 对于我这篇翻译的文章,申明如下: 可以转载,但要注明作者是王宇,并且保证整个内容包括上面几段内容的完整性。并且我对一切后果不承担责任。 MPQ 技术内幕 作者 Justin Olbrantz(Quantam) 译者 王宇 第1章 MPQ简介 MPQ 或者称作 MoPaQ 是Mike O'Brien创建的拥有私人版权的档案文件格式。Mike O'Brien是暴雪公司的多人游戏引擎方面的天才。他在1996年,为了暗黑破坏神而开发出这种档案文件格式。并且自恋的以自己的名字“Mike O'brien PaCK”给这种格式命名MPQ。但是文档的版权却由Havas Interactive(暴雪的父公司)所有。所以,即使现在Mike离开了暴雪,暴雪仍然拥有MPQ格式的使用权。MPQ格式在暗黑破坏神,星际争霸, 魔兽争霸2,3,暗黑破坏神2,BNE(译者备注:我不知道这是什么游戏),Lords of Magic(由sierra公司开发,这个公司同样隶属于Havas)等游戏中都有应用。 一个档案文件是指一个包含其他文件在内的文件,并且它经常是以压缩的形式存在的。Havas用MPQ包含了游戏中几乎所有的东西。比如安装文件,游 戏数据等等。其中游戏数据的MPQ封装是非常重要的。这些MPQ当中包括了图像,声音,等级,字符串,故事线信息等等。Obviously, the potential for customization is astounding. (译者备注:这句不好翻)但是,为了用MPQ,你必须首先理解它。 在MPQ之前 在MPQ发明之前很长一段时间,有一种个是叫做WAR(Warcraft ARchive)格式。这种格式是在魔兽争霸2甚至1中存储数据的格式。这种雏鸟格式非常的简单,也没有优化,总是看起来就是一个实实在在的新手文件格 式。档案中的文件是按照坐标来寻址的,唯一的一点点优化就是用了一些压缩技术。但是,虽然它简单,它完成了它需要完成的任务。它提供了一种快速但是肮脏的 方法压缩的存储了很多文件。但是不久,缺点就开始暴露出来了。按照坐标来寻址意味着必须保存一个很长的入口表来供程序员使用档案中某些文件的时候调用。当 这个表越来越长的时候,工作就变得越来越冗长。而且这种简单的格式意味着黑客可以很容易的在15分钟内破解除这种格式,然后可以随心所欲的在这些文件上做 一些事。这些问题一开始看起来可能还不太糟,但是当暗黑破坏神所要求的persistent characters(译者备注:这个我不懂),站网的普及让这些问题变得无法接受了。 为什么是MPQ 正如前面所说,MPQ格式是为了弥补一些WAR非常严重的缺陷设计的。但是它仍然添加了很多新的特性。总的说来,MPQ的特点如下: 安全性:暴雪最不愿意的就是人们象破解魔兽争霸2那样破解它以后的游戏。而且暴雪很可能已经觉得要把MPQ格式应用到星际争霸上面。不管怎么样,安全性是最最重要的。这点可以从那些暴雪维护这种格式的折磨人的努力中看出来。 效率:MPQ需要完成一系列工作,从最简单的预读数据到复杂的实时流。对于预读数据倒还没什么,但是对于实时流,因为数据必须以很快的速度一边玩游戏一边解压缩,所以,速度是强制的。 多语言:在最一开始,暴雪就计划把它的产品推向世界市场,所以,它希望它的游戏的翻译能尽量容易。于是它用了一种革新的方法,就是把多语言性的本领放在MPQ格式里面。 可扩展性:很显然的,把一个游戏所有的数据放入一个档案是很傻的。不仅没有效率,速度很慢,而且售后升级会变得非常麻烦。暴雪当然知道这点,因此,为了使售后升级简单,有效,优雅,它在MPQ格式的设计上就考虑到了这个问题。 风暴 Storm 很多程序员为了防止冗余代码,通常会把一些常用的代码封装到共享库里面。这些共享库可以提供程序员常用的函数。这样可以减少冗余和程序体积。所以, 暴雪用一个共享库叫做Storm(在微软平台上叫做Storm.dll, 在苹果平台上叫做Storm.bin)这个库被现在的暴雪游戏用来储存重要函数,比如MPQ的读入,战网,甚至是图像路由。当暴雪发布一个新游戏的时候, 它会在storm里面加入函数,但是不会修改旧的函数。这意味着一个老的游戏可以用新的Storm库而不会出问题。像任何共享库一样,Storm的函数可 以被任何人使用,这样就使它的安全性变得很差。这就是Storm只包含MPQ的读取函数而MPQ的写入函数却是暴雪的私人财产,它不会允许任何人去使用的 原因了。 星际争霸的任务编辑器 大家都知道星际争霸的任务编辑器可以编辑任务。但是星际争霸的任务就是MPQ!这意味星际的任务编辑器可以创建MPQ,所以其中有MPQ的创建函数。不过星际争霸的任务编辑器不是一个共享库,所以要用一系列诡异的黑客技术去破解它。于是有了MPQ API 库。 第2章 基础 大多数计算机历史上的进步是因为有特殊的问题需要解决。在这章,我们将了解一下关于MPQ格式的问题和它们的解决方案。 哈希 问题:你有一个很大的字符窜数组。你有另一个字符窜str需要判断是否存在于这个数组里面。可能你就会按照顺序一个一个的比较数组里面的内容。但是 在实际应用中,你会发现这种方法远慢于实际需求。必须对此做一些优化。但是如何你才能知道这个字符窜是否存在却不用把它同数组中的所有其它字符窜比较呢? 解决方案: 哈希。哈希是用来代替大一些的数据类型(比如字符窜)的小一些的数据类型(比如数字)。 在我们这个问题里,你可以把字符窜数组储存为 哈希 数组 。然后你就可以比较另外的那个字符窜str的哈希同储存的哈希数组中所有的哈希。如果哈希数组中的一个哈希同str的哈希匹配,那么这个哈希所代表的 字符窜就可以同str进行比较来判断到底是否相同。这种方法叫作下标(indexing),根据数组大小和字符窜长度的不同,它可以把速度提升将近100 倍。 (这里只是用一个数字表示一个字符串,即字符串数组变为整数数组) unsigned long HashString( char * lpszString) { unsigned long ulHash = 0xf1e2d3c4 ; while ( * lpszString != 0 ) { ulHash = 1 ; ulHash += * lpszString ++ ; } return ulHash; } 以上的代码展示了一个非常简单的哈希算法。函数计算了字符窜中的字符个数,在每个字符加入之前把哈希值左移1位。应用这个算法,字符窜"arr/ units.dat"将会被哈希成0x5A858026,而"unit/neutral/acritter.grp" 将会被哈希成0x694CD020。不可否认,现在这个算法非常的简单,而且没有什么用处。因为它产生了一个相对可以预见的结果。而且会有很多冲突。 chogntu 是指多个字符窜哈希到同样一个数值。 而另一方面,MPQ格式却用了一种非常复杂的哈希算法(如下所示)去生成一个完全不可预料的哈希值。事实上,这种哈希算法叫做单行道哈希(one-way hash)。单行道哈希是指根据哈希值不能推回去找到源字符窜的哈希算法。应用这种MPQ算法,文件名"arr/units.dat" 将被哈希为0xF4E6C69D,而"unit/neutral/acritter.grp"将被哈希为0xA26067F3. unsigned long HashString( char * lpszFileName,unsigned long dwHashType) { unsigned char * key = (unsigned char * )lpszFileName; unsigned long seed1 = 0x7FED7FED ,seed2 = 0xEEEEEEEE ; int ch; while ( * key != 0 ) { ch = toupper( * key ++ ); seed1 = cryptTable ^ (seed1 + seed2); seed2 = ch + seed1 + seed2 + (seed2 5 ) + 3 ; } return seed1; } 哈希表 问题:你试图使用之前例子里面的下标法,但是你的程序需要非常严格的速度限制。这时候你就会发现下标法不够快了。这时候你让它变得更快的方法只能是 不让它检查数组中所有的哈希。或者,更好的是只让字符串同数组中的某个元素比较1次就能判断出这个字符窜是否存在于这个数组。听起来太好了以至于不可能对 不对? 解决方案: 哈希表。哈希表是一种下标为字符串哈希值得数组 。我的意思是说,我们为这个哈希表构建一个不同于字符串数组的定长数组(我们把它的元素个 数定位1024,2的偶数次幂)。这时候,当你想要知道一个字符串是否在哈希表中时,你得首先计算这个字符串如果在哈希表中,那么它的位置是多少。首先我 们计算这个字符串的哈希,然后用哈希模取之前的表长(1024)就得到了位置值。因此,如果你用之前的简单哈希算法,"arr/units.dat"将被 哈希为0x5A858026,得到它得位置值为 0x26 (0x5A858026 模取 0x400 商为 0x16A160余数为0x26)。0x26这个位置的字符串(如果有的话)将被读出来与目标字符串比较。如果0x26这个字符串与目标字符串不匹配或者 0x26的这个字符串不存在,则这个目标字符串不存在于这个数组中。以下的代码说明了这点: (这里的数组存得还是字符串,只是索引位置是hash整数) int GetHashTablePos( char * lpszString,SOMESTRUCTURE * lpTable, int nTableSize) { int nHash = HashString(lpszString),nHashPos = nHash % nTableSize; if (lpTable .bExists ! strcmp(lpTable .pString,lpszString)) return nHashPos; else return - 1 ; // Errorvalue } 可是现在,这个算法有一个巨大的缺陷。你认为当冲突(2个字符窜哈希到同样一个值)发生的时候会怎么样?显然它们不能占用哈希表中的同一个元素。一 般,这种缺陷通过使哈希表中的每一个元素成为一个链表来实现。每个链标中将存放哈希值相同的字符窜。MPQ使用文件名哈希表来跟踪内部的所有文件。但是这 个表的格式与正常的哈希表有一些不同。首先, 它没有使用哈希作为下标, 把实际的文件名存储在表中用于验证,实际上它根本就没有存储文件名。而是使用了3种 不同的哈希 :一个用于哈希表的下标,两个用于验证。这两个验证哈希替代了实际文件名。当然了,这样仍然会出现2个不同的文件名哈希到3个同样的哈希。但是 这种情况发生的概率平均是1:18889465931478580854784,这个概率对于任何人来说应该都是足够小的咯。MPQ哈希表不同用通常的链 表冲突解决法,当冲突发生时,元素将被下移到下一个空着的位置。请看下面的代码,基本就是MPQ定位文件名的方法: (这种三hash的做法就不需要存储字符串了,这样对于很长的字符串而言,可以节省空间) int GetHashTablePos( char * lpszString,MPQHASHTABLE * lpTable, int nTableSize) { const int HASH_OFFSET = 0 ,HASH_A = 1 ,HASH_B = 2 ; int nHash = HashString(lpszString,HASH_OFFSET), nHashA = HashString(lpszString,HASH_A), nHashB = HashString(lpszString,HASH_B), nHashStart = nHash % nTableSize, nHashPos = nHashStart; while (lpTable .bExists) { if (lpTable .nHashA == nHashA lpTable .nHashB == nHashB) return nHashPos; else nHashPos = (nHashPos + 1 ) % nTableSize; if (nHashPos == nHashStart) break ; } return - 1 ; // Errorvalue } 虽然这段代码可能看起来让你费解,但是它背后的理论却并不复杂。它在读取一个文件的时候基本遵循了以下的步骤: 1 计算3个哈希(1个下标哈希和2个检查哈希)并且把他们存入变量 2 移动到下标哈希所指的元素 3 这个元素存在吗?如果不存在,停止搜索,返回“文件没有找到” 4 元素的两个检查哈希是否我们搜索的文件的检查哈希相匹配?如果相匹配,就返回当前的元素。 5 移动当前下标到下一个,如果达到最后一个下标,则回到第1个 6 我们刚一动到的元素的下标哈希是否相同(我们是否搜索了整个表)如果是,停止搜索,返回“文件没有找到” 7 回到第3步 如果你留心了,你会发现,在我的解释和例子中MPQ哈希表需要保存所有的文件名。但是,你有没有想过当所有的哈希表行全部都填满的时候会发生什么? 答案可能会让你非常惊讶:你将不能再添加任何文件。有人问我为什么一个MPQ会有文件数目限制,有没有什么方法可以解决这种限制。你已经直到第一个问题的 答案了,对于第2个问题,很遗憾,你不能解决这种文件数目限制。因为哈希表不能再不影响整个文件改变的情况下改变大小。这是因为哈希表中每个元素的哈希都 因为哈希表大小的变化发生改变,这样我们就不能得到文件在新的哈希表中的位置,于是我们就不能得到文件名了。 压缩 问题:你有一个很大的程序(比如50MB)你现在希望把它发不到Inter网上。但是50MB将会是非常大的下载,人们可能就不会愿意等上几个小时去下载这么一个东西。 解决方案:压缩。压缩是指把一大堆数据用一种很小的格式表达出来。世界上有很多种压缩算法,每一种都用不同的方法工作。而我们的MPQ使用的数据压缩算法是PKWare的数据压缩库。而这个库在这里解释的话就太复杂了。所以,我在这里想解释一种相对简单的夺得压缩算法。 此节因为作者的能力原因,没有完成。 加密 一个系统对于间谍之眼窥视的防护一直是永恒的话题。人们已经努力传送私人信息给别人了上百年。从古希腊信使步行传送的手写书信到2战时纳粹潜艇的无 线电,再到今天网络信用卡交易。保证别人不能得到你的信息的能力是非常必要的。这种复杂的保护方法叫做加密。虽然我们不知道第一个加密算法是谁发明的,但 是我们知道世界上游多的数不过来的加密算法。任何事物,从简单的数据编码到解密算法都是被使用了一次又一次的。这篇文章,当然没有解释,也不期望解释一个 加密算法,但是理解加密是你接触MPQ工作的必须。 我们首先来看一个发布在 Basic Lab Notes上的加密算法: void EncryptBlock( void * lpvBlock, int nBlockLen, char * lpszPassword) { int nPWLen = strlen(lpszPassword),nCount = 0 ; char * lpsPassBuff = ( char * )_alloca(nPWLen); memcpy(lpsPassBuff,lpszPassword,nPWLen); for ( int nChar = 0 ;nCount nBlockLen;nCount ++ ) { char cPW = lpsPassBuff ; lpvBlock ^= cPW; lpsPassBuff = cPW + 13 ; nCount = (nCount + 1 ) % nPWLen; } return ; } 正如展示的哈希代码那样,这段代码也非常的简单,当然也就不能用在需要安全性的实际程序中。即便这段代码看起来很神秘,它做的事情却非常简单。它将 整个的输入块加密。异或密码的每一个字节。然后把所得加上13(之所以选择13是因为13是质数)。这样就能够使代码更加难以确认。在这种情况下,字符串 "encryption" (65 6E 63 72 79 70 74 69 6F 6E)在密码"MPQ" (4D 50 51)下将会被加密成为(28 3E 32 28 24 2E 13 03 04 1A)现在,这段代码是对称的。对称意味着加密的密钥和解密的密钥是相同的。实际上,因为异或是一个对称的操作,所以同加密相同的算法可以被用来解密。注 意到大部分对称加密算法并非完全对称,所以需要加密和解密的函数不相同。好,现在事情开始变得麻烦了。如果你希望直接的使用MPQ格式,那么你必须知道它 的加密和解密算法。而我就来教你如何使用它.MPQ的加密算法是一些其他加密算法有趣的杂交。 它创建一个加密表(也用在哈希函数里面),然后用一个文件的 加密钥去从加密表中取出某些数字,再把这些数字同加秘数据进行异或。 现在这种做事的方法是非常非常奇怪的,所以可能一些代码看起来非常的复杂。以下的代码 生成一个长度为0x500的加密表。 void prepareCryptTable() { unsigned long seed = 0x00100001 ,index1 = 0 ,index2 = 0 ,i; for (index1 = 0 ;index1 0x100 ;index1 ++ ) { for (index2 = index1,i = 0 ;i 5 ;i ++ ,index2 += 0x100 ) { unsigned long temp1,temp2; seed = (seed * 125 + 3 ) % 0x2AAAAB ; temp1 = (seed 0xFFFF ) 0x10 ; seed = (seed * 125 + 3 ) % 0x2AAAAB ; temp2 = (seed 0xFFFF ); cryptTable = (temp1 | temp2); } } } 你是否有点感觉到暴雪雇佣了一个超级没有人品的微积分教授撰写了这个代码?至少我是这么感觉的。还好即使你不能看懂这段代码也没有什么大问题。如果 你希望能够直接使用MPQ,那么你可能会需要这些函数。你没有必要完全看明白他们。不管怎么样,当加密表初始化以后,我们就可以用下面的函数来解密MPQ 数据(不要指望我会向你解释这个代码,因为我也没有看懂): void DecryptBlock( void * block, long length,unsigned long key) { unsigned long seed = 0xEEEEEEEE ,unsigned long ch; unsigned long * castBlock = (unsigned long * )block; // Roundtolongs length = 2 ; while (length -- 0 ) { seed += stormBuffer ; ch = * castBlock ^ (key + seed); key = (( ~ key 0x15 ) + 0x11111111 ) | (key 0x0B ); seed = ch + seed + (seed 5 ) + 3 ; * castBlock ++ = ch; } } 翻译后记: 这只是我闲来无事翻译着玩的东西,都没有认真的推敲翻译的语句,甚至有一些语句我是没有看懂的,或者明明知道这样翻译是不好的但还是写上去了。甚至 我都没有兴趣自己从头到尾把这篇文章再看1遍。之所以只翻译道第2章是因为第3,4章分别讲述Storm和Starcraft Campaign Editor and the MPQ API Library是如何使用的,没有什么翻译的价值。而真正精彩的5,6两章作者又没有写完。所以说作者实在不厚道。一下给出英文源出处,希望我的翻译只是 抛砖引玉,能激发大家越读英文原版的激情。很多时候翻译的过程中损失的信息还是相当严重的。 英文源出处: http://www.campaigncreations.org/starcraft/inside_mopaq 转: http://blog.csdn.net/olncy/article/details/2381497
个人分类: 算法|2428 次阅读|0 个评论
一种分子层次的横波状态的发现
热度 1 zhaodeyu 2011-9-17 13:52
  声音大家都知道,它是纵波,是空气分子在传播方向上的疏密振动。可大家知道不知道,其实还存在一种分子的横波状态,它和纵波的不同就在于空气分子在压缩的过程中出现了有序的涡漩。不过这种涡漩并不稳定,它迅速就会走向解体,并释放能量,而这些能量又会引起分子的另一个反方向的涡漩,以此类推,能量就通过这种分子的有序和无序变换在空间中传递。   当然,这种分子的横波状态并不常见,它主要出现抗磁性的物体之中,如金、银、铜、玉、空气分子、水等。什么是磁?其实它就是分子的组织产生的一定方向的能量,这种组织在电磁学中叫磁畴,所谓的抗磁性其实就是分子在反抗周围能量的作用中组织起来,产生一个与外在能量相对抗的分子集合,如果外在能量消失了,它还不消失,就成了永磁性的东西了,如磁铁。不过,在抗磁性物体中,这种能量很快就会消失的,因为这种分子秩序在特定条件下产生的,没有了它存在的条件,它就会离散开来并向外释放能量。需要指出的是,如果这种能量释放到抗磁性物体中,就会出现一种特殊的现象,那就是分子的横波状态,即通过分子的组织与离散向周围释放能量。   很多人都知道水是横波,可绝大多数人并不知道它横波的根本。原来,水分子在水中并不是孤立存在的,而是成团存在的,特别是在含有无机离子的水中,这些无机离子都会根据它们的带电性吸引大量水分子在它周围形成一个暂态的有序结构,不过这种结构是由氢键连接的,它并不稳定,一定有外在能量的作用,水中就会产生大量自由氢质子,它就会迅速破坏这个有序结构使之离散并释放能量,而这些释放的能量又会引起周围水分子的重新组织,以此类推,一种特殊的能量传递方式出现了,那就是通过自由氢质子在水分子链上的快速递进,依赖包络在无机离子周围的有序水层的周期组织与离散传递能量。而水的横波性质就是由水分子的暂态组织表现出来的。生物之所以能够称之为生物,就是因为水中有这么一种特殊的能量传递方式,这使生物表现出了一种与众不同的生命力。   不少人一直惊奇,为什么金银可以作为货币?其实它有着特定的内在价值,这就是保健。原因很简单,当空气分子磨擦它的表面的时候,它就会产生一种特殊的能量,这就是分子的有序和无序变换,这种能量能够被生物的组织液强烈吸收,从而影响生物的新陈代谢。形成这种能量的还有其它抗磁性物体,如空气分子,当它经过曲面物质的时候,也会产生这种能量,特别是在水中,这种能量是天然存在的,因为引力和电磁力都会激发水分子中的一个氢原子从中游离出来,成为一个自由氢质子,这个自由氢质子又会作用于另外一个水分子,并把这个水分子中的氢原子置换出来,以此类推,这种能量的能量形式就出现了。更为值得一提的是,这种能量还有一种类似激光的存在方式,在特定条件下,它可以形成一种高强度、高方向性、高能量的生物波,进而产生一系列令人意想不到的物质现象。至于什么现象,去想想那些至今还不可理解的神秘现象就知道了,如海上神秘失踪事件,人体的某些特殊功能,甚至中国的风水现象。   作为一个科学家,是不能对神秘现象寄予神秘主义的解释的,因为在这个世界,一切物质现象都是遵循着自然规则的,我们无法认识这些现象,是因为我们还没有发现这些规则,如果我们用心去发现了,你就会知道,自然是没有神秘现象的。
个人分类: 自然科学|75 次阅读|2 个评论
[转载]Linux 压缩 解压命令 tar, gzip, zcat,bzip2
chrujun 2011-4-4 11:39
http://hi.baidu.com/zhujiawei/blog/item/8ff966d041610089a1ec9c2c.html Linux 压缩打包命令使用方法 tar 命令 # tar 文件与目录 .... 参数: -c :建立一个压缩文件的参数指令 (create 的意思 ) ; -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在! 因为不可能同时压缩与解压缩。 -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩? -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩? -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程! -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!    例如使用『 tar -zcvfP tfile sfile 』就是错误的写法,要写成    『 tar -zcvPf tfile sfile 』才对喔! -p :使用原文件的原来属性(属性不会依据使用者而变) -P :可以使用绝对路径来压缩! -N :比后面接的日期 (yyyy/mm/dd) 还要新的才会被打包进新建的文件中! --exclude FILE :在压缩的过程中,不要将 FILE 打包! 范例: 范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar # tar -cvf /tmp/etc.tar /etc == 仅打包,不压缩! # tar -zcvf /tmp/etc.tar.gz /etc == 打包后,以 gzip 压缩 # tar -jcvf /tmp/etc.tar.bz2 /etc == 打包后,以 bzip2 压缩 # 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。 # 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~ # 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~ # 上述指令在执行的时候,会显示一个警告讯息: # 『 tar: Removing leading `/' from member names 』那是关於绝对路径的特殊设定。 范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件? # tar -ztvf /tmp/etc.tar.gz # 由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时, # 就得要加上 z 这个参数了!这很重要的! 范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下 # cd /usr/local/src # tar -zxvf /tmp/etc.tar.gz # 在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说, # 我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz , # 则解开的目录会在 /usr/local/src/etc 呢!另外,如果您进入 /usr/local/src/etc # 则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔! 范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已 # cd /tmp # tar -zxvf /tmp/etc.tar.gz etc/passwd # 我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件, # 就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了! 范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限! # tar -zxvpf /tmp/etc.tar.gz /etc # 这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时! 范例六:在 /home 当中,比 2005/06/01 新的文件才备份 # tar -N '2005/06/01' -zcvf home.tar.gz /home 范例七:我要备份 /home, /etc ,但不要 /home/dmtsai # tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc 范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件! # cd /tmp # tar -cvf - /etc | tar -xvf - # 这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的! # 要注意的地方在於输出档变成 - 而输入档也变成 - ,又有一个 | 存在~ # 这分别代表 standard output, standard input 与管线命令啦! # 这部分我们会在 Bash shell 时,再次提到这个指令跟大家再解释啰! gzip, zcat 命令 # gzip 档名 # zcat 档名 .gz 参数: -c :将压缩的资料输出到萤幕上,可透过资料流重导向来处理; -d :解压缩的参数; -t :可以用来检验一个压缩档的一致性~看看文件有无错误; -# :压缩等级, -1 最快,但是压缩比最差、 -9 最慢,但是压缩比最好!预设是 -6 ~ 范例: 范例一:将 /etc/man.config 複制到 /tmp ,并且以 gzip 压缩 # cd /tmp # cp /etc/man.config . # gzip man.config # 此时 man.config 会变成 man.config.gz ! 范例二:将范例一的文件内容读出来! # zcat man.config.gz # 此时萤幕上会显示 man.config.gz 解压缩之后的文件内容!! 范例三:将范例一的文件解压缩 # gzip -d man.config.gz 范例四:将范例三解开的 man.config 用最佳的压缩比压缩,并保留原本的文件 # gzip -9 -c man.config man.config.gz bzip2, bzcat 命令 # bzip2 档名 # bzcat 档名 .bz2 参数: -c :将压缩的过程产生的资料输出到萤幕上! -d :解压缩的参数 -z :压缩的参数 -# :与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快! 范例: 范例一:将刚刚的 /tmp/man.config 以 bzip2 压缩 # bzip2 -z man.config # 此时 man.config 会变成 man.config.bz2 ! 范例二:将范例一的文件内容读出来! # bzcat man.config.bz2 # 此时萤幕上会显示 man.config.bz2 解压缩之后的文件内容!! 范例三:将范例一的文件解压缩 # bzip2 -d man.config.bz2 范例四:将范例三解开的 man.config 用最佳的压缩比压缩,并保留原本的文件 # bzip2 -9 -c man.config man.config.bz2 compress 命令 # compress 文件或目录 参数: -d :用来解压缩的参数 -r :可以连同目录下的文件也同时给予压缩呢! -c :将压缩资料输出成为 standard output ( 输出到萤幕 ) 范例: 范例一:将 /etc/man.config 複制到 /tmp ,并加以压缩 # cd /tmp # cp /etc/man.config . # compress man.config # ls -l -rw-r--r-- 1 root root 2605 Jul 27 11:43 man.config.Z 范例二:将刚刚的压缩档解开 # compress -d man.config.Z 范例三:将 man.config 压缩成另外一个文件来备份 # compress -c man.config man.config.back.Z # ll man.config* -rw-r--r-- 1 root root 4506 Jul 27 11:43 man.config -rw-r--r-- 1 root root 2605 Jul 27 11:46 man.config.back.Z # 这个 -c 的参数比较有趣!他会将压缩过程的资料输出到萤幕上,而不是写入成为 # file.Z 文件。所以,我们可以透过资料流重导向的方法将资料输出成为另一个档名。 # 关於资料流重导向,我们会在 bash shell 当中详细谈论的啦!
个人分类: 地球物理及仪器|5268 次阅读|0 个评论
[转载]linux和unix下常用解压和压缩命令
chrujun 2011-4-4 11:35
http://blog.chinaunix.net/space.php?uid=10674325do=blogcuid=231709 .tar 解包: tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) --------------------------------------------- .gz 解压1:gunzip FileName.gz 解压2:gzip -d FileName.gz 压缩:gzip FileName .tar.gz 解压:tar zxvf FileName.tar.gz 压缩:tar zcvf FileName.tar.gz DirName --------------------------------------------- .bz2 解压1:bzip2 -d FileName.bz2 解压2:bunzip2 FileName.bz2 压缩: bzip2 -z FileName .tar.bz2 解压:tar jxvf FileName.tar.bz2 压缩:tar jcvf FileName.tar.bz2 DirName --------------------------------------------- .bz 解压1:bzip2 -d FileName.bz 解压2:bunzip2 FileName.bz 压缩:未知 .tar.bz 解压:tar jxvf FileName.tar.bz 压缩:未知 --------------------------------------------- .Z 解压:uncompress FileName.Z 压缩:compress FileName .tar.Z 解压:tar Zxvf FileName.tar.Z 压缩:tar Zcvf FileName.tar.Z DirName --------------------------------------------- .tgz 解压:tar zxvf FileName.tgz 压缩:未知 .tar.tgz 解压:tar zxvf FileName.tar.tgz 压缩:tar zcvf FileName.tar.tgz FileName --------------------------------------------- .zip 解压:unzip FileName.zip 压缩:zip FileName.zip DirName --------------------------------------------- .rar 解压:rar a FileName.rar 压缩:r ar e FileName.rar rar请到: http://www.rarsoft.com/download.htm 下载! 解压后请将rar_static拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以): # cp rar_static /usr/bin/rar --------------------------------------------- .lha 解压:lha -e FileName.lha 压缩:lha -a FileName.lha FileName lha请到: http://www.infor.kanazawa-it.ac.jp/.../lhaunix/ 下载! 解压后请将lha拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以): # cp lha /usr/bin/ --------------------------------------------- .rpm 解包:rpm2cpio FileName.rpm | cpio -div --------------------------------------------- .tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea 解压:sEx x FileName.* 压缩:sEx a FileName.* FileName sEx只是调用相关程序,本身并无压缩、解压功能,请注意! sEx请到: http://sourceforge.net/projects/sex 下载! 解压后请将sEx拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以): # cp sEx /usr/bin/
个人分类: 地球物理及仪器|1915 次阅读|0 个评论
研究生绝对不能扩招!
caojian123 2010-11-8 13:08
我认为刘进平老师 研究生还应该继续扩招一文中( http://www.sciencenet.cn/m/user_content.aspx?id=381501 )有两个前提必须注意: 一、 导师数量增加(甚至可以说是泛滥) 既然导师数量增加,质量没有提升,为何还要给这些人增加名额,这不是误人子弟吗? 二、导师课题项目数及工作量增大 研究生来校的目的是什么?是为了系统学习,而不是冲着项目数和工作量来的。课题数及工作量增大的至少少数学霸或关系户,还有很多科研人员嗷嗷待哺呢!对贪得无厌或至高无上的人,限制生源是最好的制裁措施。大家都知道,从科研体制上想做点什么,犹如徒步登天。 生贵师贱首先是学生理性的表现。过去,研究生常常能找到一份体面的工作,像样的老婆或老公。可如今,时过境迁,今非昔比,手捏研究生文凭的人多如牛毛,不再稀缺。按经济学规律,资源过剩定遭贬值,人力资源也不例外。看看,现在的研究生,除了树大根深有背景的少数人外,哪个不为混口饭而焦虑不安呢?既然读研与不读研没什么区别,学生凭什么还要卷入这趟混流中来?如此看来,生荒是理性的回归,不关乎导师数量的泛滥。 其次,生贵师贱是众多学子对读研教训的沉痛反思。对多数学生而言,读研是为了深造,深造的目的就是为了个人的发展。为了个人的发展?没错。从进化尺度上看,这也合乎常情,但现在很多老师称其为学生动机不良或不纯,真是扼杀人性。为了让学生动机纯起来,唯项目、金钱占了上风。如此,几年下来,学生在被项目的环境中朦朦胧胧、浑浑噩噩,终究一事无成,只累积了一点经验,那就是:读研真没意思或真后悔当初做了考研的选择。。。要知道,经验具有传递效应。这不,很多学生已经受到感染了。 如果找下去,我相信有N多研究生不应该扩招的理由。 研究生不扩招有2利:保护学生和限制导师。既然如此,何乐而不为?我们根本没必要为了泛滥的导师和课题而摇旗呐喊!!!
个人分类: 生活点滴|3005 次阅读|5 个评论
最近景观格局论文压缩工作
gghgiser 2010-11-5 20:50
这 周的任务比较多,星期天晚上准备第二天院长的专业英语课,本来很庆幸自己没把之前在英语听说课上作报告PPT删除,因为那也是介绍专业学习方面的,拿过来修改一下可以用到应付院长的任务上。谁知到了第二天,院长讲完后,W同学主动站起来上去给大家讲解她在ArcNews上面翻译出来的材料。我看着Word里短短的进度条,就知道后面有多少内容了。后来听说她竟花了两个星期去做这个作业!晕~时间真多!星期二和星期三都要给09级GIS1班上ArcGIS操作课,所以得把星期一和星期二的大部分时间都花到备课上了。今天一大节课下来,效果还挺好的,感觉自己开始能够自由地应付上课这种事情。 上 午给他们上完课后已经12:00了,为避开饭堂吃饭时间人流高峰,先回实验室整理东西。收到期刊编辑部发来的邮件,他们要求我对景观格局一文进行再精减,而且要求从排好版的7个半版压缩到6个版。开始时候真有点疯了,这篇文章已经折腾我整整一年了,开始是漫长等待接收消息,中期是反反复复修改:内容情况说明、增加引用文献和图表整饰什么的,现在开始文字精减了。不过,后来想想这也算是个学习的机会吧,大家都说减少文字比增加内容简单的。花了整个下午和晚上的时间,通过精减和精简后,文章除了结论部分都弄好了,文件数量从原本的8917字缩减(缩简)到6553字,版数也变成6个半版,加上明天再把结论改写一下,文章精减的任务就应该水到渠成的。 这 次修改过程也感悟到很多东西,发现以前自己文笔的稚嫩,当然也从这个发现过程看到自己的进步。上周五给G老师看图像融合中小波基问题探讨的文章时候她就赞赏我论文结构和文字把握能力有了较大的提高,呵呵,这是鼓励,不过高兴之余更应该看到亟需改进的地方。 最 近争取把景观格局文章修改好,11月中要把小波基文章全部整出来,在目前的熟悉影像融合理论基础和方法以及已完成的工作基础上,11月份在对分解层数再做一些探讨。12月份要开始生态环境因素的多尺度分析工作了,争取来年年初出相关论文,同时也顺带把开题报告准备好。 继续加油!!
个人分类: 科研学习|2297 次阅读|0 个评论
爱看美女之Mp3Resizer和PDFcompressor
ccpicasso 2010-7-9 15:45
前前后后试用了不下十种软件,搞定了几个事情。找到了可以分别压缩 MP3 文件和 PDF 文件的软件,体积小,绿色,方便。 在硬盘等等储存设备如此海量的今天,也很容易遇到容量不够的时候。 多了不说了,你一定也需要这两个软件,它们是: Mp3Resizer 【 714kB 】、 PDFcompressor 【 305kB 】。 后者可以把 4.73M 的文件压缩到 10kB 。够好的吧,而且免安装喔。前者把一首 3.09M 的歌曲搞到 791kB ,不够好但够用了。其实可以用 Movie Maker ,效果更好,但是我现在装的是W in7 ,里面没有这个XP 都有的还可以的玩意。有条件和兴趣的可以用 MM 。 您可以在网上 down ,实在不行可以联系我。 这两款软件挺好的,不亚于美女的诱惑了,在你需要的时候,你会感觉它们那么美丽,用的时候会发现它们周围有神圣的光芒萦绕,心头想着那美妙的结果,该是多么美好的一件事情。大家都喜欢看美女,所以分享一下咯。
个人分类: 我系列之也喜欢看美女|2534 次阅读|1 个评论
linux下的压缩/解压命令速查
dabing 2009-8-25 20:47
.tar   解包: tar xvf FileName.tar   打包:tar cvf FileName.tar DirName   (注:tar是打包,不是压缩!)   --------------------------------------------- .gz   解压1:gunzip FileName.gz   解压2:gzip -d FileName.gz   压缩:gzip FileName   .tar.gz 和 .tgz   解压:tar zxvf FileName.tar.gz   压缩:tar zcvf FileName.tar.gz DirName   --------------------------------------------- .bz2   解压1:bzip2 -d FileName.bz2   解压2:bunzip2 FileName.bz2   压缩: bzip2 -z FileName   .tar.bz2   解压:tar jxvf FileName.tar.bz2   压缩:tar jcvf FileName.tar.bz2 DirName   --------------------------------------------- .bz   解压1:bzip2 -d FileName.bz   解压2:bunzip2 FileName.bz   压缩:未知   .tar.bz   解压:tar jxvf FileName.tar.bz   压缩:未知   --------------------------------------------- .Z   解压:uncompress FileName.Z   压缩:compress FileName .tar.Z   解压:tar Zxvf FileName.tar.Z   压缩:tar Zcvf FileName.tar.Z DirName   --------------------------------------------- .zip   解压:unzip FileName.zip   压缩:zip FileName.zip DirName   --------------------------------------------- .rar   解压:rar a FileName.rar   压缩:r ar e FileName.rar      rar请到:http://www.rarsoft.com/download.htm 下载 !   解压后请将rar_static拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):    # cp rar_static /usr/bin/rar   --------------------------------------------- .lha   解压:lha -e FileName.lha   压缩:lha -a FileName.lha FileName      lha请到:http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/ 下载 !   解压后请将lha拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):    # cp lha /usr/bin/   --------------------------------------------- .rpm   解包:rpm2cpio FileName.rpm | cpio -div   --------------------------------------------- .deb   解包:ar p FileName.deb data.tar.gz | tar zxf - {参考文献}http://linux.chinaitlab.com/administer/31333.html
个人分类: LINUX&IRAF|3599 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-23 12:25

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部