﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-学习笔迹-文章分类-linux</title><link>http://www.blogjava.net/chenlb/category/30299.html</link><description>好记性不如烂笔头! 
&lt;div style="position:relative;width:468px;left:160px;top:40px;"&gt;
	&lt;div style="position:absolute;width:468px;bottom:0px;"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;</description><language>zh-cn</language><lastBuildDate>Fri, 08 Jan 2010 15:36:15 GMT</lastBuildDate><pubDate>Fri, 08 Jan 2010 15:36:15 GMT</pubDate><ttl>60</ttl><item><title>rpm 命令</title><link>http://www.blogjava.net/chenlb/articles/188231.html</link><dc:creator>流浪汗</dc:creator><author>流浪汗</author><pubDate>Mon, 24 Mar 2008 06:17:00 GMT</pubDate><guid>http://www.blogjava.net/chenlb/articles/188231.html</guid><wfw:comment>http://www.blogjava.net/chenlb/comments/188231.html</wfw:comment><comments>http://www.blogjava.net/chenlb/articles/188231.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenlb/comments/commentRss/188231.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenlb/services/trackbacks/188231.html</trackback:ping><description><![CDATA[<p>转载:&nbsp;http://www.math.ecnu.edu.cn/~jypan/linux/command/rpm.htm<br />
<br />
&nbsp; </p>
<div style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 2pt; border-left: medium none; padding-top: 0cm; border-bottom: black 3pt solid">
<h1>RPM <span style="font-family: 宋体">命令</span> </h1>
</div>
<p><strong>一、RPM介绍</strong> </p>
<p>1.什么是rpm ？ </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">rpm 即RedHat Package Management，是RedHat的发明之一 </pre>
</div>
<p>2.为什么需要rpm ？ </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">在一个操作系统下，需要安装实现各种功能的软件包。这些软件包一般都有各自的程序，</pre>
<pre style="background: snow; margin-left: 0cm">但是同时也有错综复杂的依赖关系。同时还需要 解决软件包的版本，以及安装，配置，</pre>
<pre style="background: snow; margin-left: 0cm">卸载的自动化问题。为了解决 这些问题，RedHat针对自己的系统提出了一个较好的办法</pre>
<pre style="background: snow; margin-left: 0cm">来管理成千 上百的软件。这就是RPM管理系统。在系统中安装了rpm管理系统以后， </pre>
<pre style="background: snow; margin-left: 0cm">只要是符合rpm文件标准的打包程序都可以方便地安装、升级、卸载。</pre>
</div>
<p>3.是不是所有的linux都使用rpm ？ </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">任何系统都需要包管理系统，因此很多linux都使用rpm系统。 rpm系统是Redhat Linux和</pre>
<pre style="background: snow; margin-left: 0cm">Fedora Core的软件包管理器，但是Mandriva、SuSE等Linux发行版也都使用rpm。由于rpm</pre>
<pre style="background: snow; margin-left: 0cm">的源程序可以在别的系统上进行编译，所以有可能在别的系统上也使用rpm。除了rpm，</pre>
<pre style="background: snow; margin-left: 0cm">其他一些系统也有自己的软件包管理程序， 例如 debian的deb包。 </pre>
</div>
<p>4.rpm包的文件名为什么那么长 ？ </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">rpm包的文件名中包含了这个软件包的版本信息，操作系统信息，硬件要求等等。</pre>
<pre style="background: snow; margin-left: 0cm">比如mypackage-1.1-2RH.i386.rpm，其中mypackage是在系统中登记的软件包的名字1.1</pre>
<pre style="background: snow; margin-left: 0cm">是软件的版本号，2是发行号，RH表示用于RH操作系统。i386表示用于intel x86平台。 </pre>
</div>
<p>5.软件包文件名中的i386,i686是什么意思 </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">rpm软件包的文件名中，不仅包含了软件名称，版本信息，还包括了适用的硬件架构的信息。 </pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">i386指这个软件包适用于intel 80386以上的x86架构的计算机(AI32) </pre>
<pre style="background: snow; margin-left: 0cm">i686指这个软件包适用于intel 80686以上(奔腾pro以上)的x86架构的计算机(IA32) </pre>
<pre style="background: snow; margin-left: 0cm">noarch指这个软件包与硬件架构无关，可以通用。 </pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">i686软件包通常针对CPU进行了优化，现在通常配置的机器都可以使用i686软件包。 </pre>
</div>
<p>6.不同操作系统发行的rpm包可否混用？ </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">对于已经编译成二进制的rpm包，由于操作系统环境不同，一般不能混用。 </pre>
<pre style="background: snow; margin-left: 0cm">对于以src.rpm发行的软件包，由于需要安装时进行本地编译，所以通常可以在不同系统下安装。 </pre>
</div>
<p><strong>二、RPM包管理的用途</strong> </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">1、可以安装、删除、升级和管理以rpm包形式发布的软件；</pre>
<pre style="background: snow; margin-left: 0cm">2、可以查询某个rpm包中包含哪些文件，以及某个指定文件属于哪个rpm包；</pre>
<pre style="background: snow; margin-left: 0cm">3、可以在查询系统中的某个rpm包是否已安装以及其版本；</pre>
<pre style="background: snow; margin-left: 0cm">4、作为开发者可以把自己开发的软件打成rpm包发布；</pre>
<pre style="background: snow; margin-left: 0cm">5、依赖性的检查，查询安装某个rpm包时，需要哪些其它的rpm包。 </pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">注：RPM软件的安装、删除、更新只有root权限才能使用；</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;&nbsp;&nbsp; 对于查询功能任何用户都可以操作。</pre>
</div>
<p><strong>三、rpm 的一点简单用法 </strong></p>
<p>rpm的一般格式： </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">&nbsp;rpm [选项] [rpm软件包]</pre>
</div>
<p>1、初始化rpm 数据库（可以省略） </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">rpm --initdb</pre>
<pre style="background: snow; margin-left: 0cm">rpm --rebuilddb&nbsp;% 注：这个要花好长时间</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">%注：有时rpm 系统出了问题，不能安装和查询，大多是这里出了问题。</pre>
</div>
<p>2、RPM软件包管理的查询功能： </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">rpm -q [select-options] [query-options]</pre>
</div>
<p>RPM的查询功能是极为强大，是极为重要的功能之一；这里举几个常用的例子，更为详细的具体的，请参考 man rpm </p>
<p><em>对系统中已安装软件的查询</em> </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">1）查询系统已安装的软件</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">语法：rpm -q 软件名</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">例：rpm -q mplayer</pre>
<pre style="background: snow; margin-left: 0cm">% -q就是 --query，此选项表示询问系统是不是安装了gaim软件包；</pre>
<pre style="background: snow; margin-left: 0cm">% 如果已安装会有信息输出；如果没有安装，会输出gaim 没有安装的信息；</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">%查看系统中所有已经安装的包，要加 -a 参数</pre>
<pre style="background: snow; margin-left: 0cm">rpm -qa</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">% 如果分页查看，再加一个管道 |和more命令</pre>
<pre style="background: snow; margin-left: 0cm">rpm -qa |more</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">% 如果要查找某个软件包，可以用 grep 抽取出来</pre>
<pre style="background: snow; margin-left: 0cm">rpm -qa |grep mplayer</pre>
<pre style="background: snow; margin-left: 0cm">2）查询一个已经安装的文件属于哪个软件包；</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">语法: rpm -qf 文件名</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">注：文件名所在的绝对路径要指出</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">例：rpm -qf /usr/lib/libacl.la</pre>
<pre style="background: snow; margin-left: 0cm">3）查询已安装软件包都安装到何处；</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">语法：rpm -ql 软件包名 </pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">例：rpm -ql mplayer</pre>
<pre style="background: snow; margin-left: 0cm">4）查询一个已安装软件包的信息 </pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">语法： rpm -qi 软件包名</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">例：rpm -qi mplayer</pre>
<pre style="background: snow; margin-left: 0cm">5）查看一下已安装软件的配置文件；</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">语法格式：rpm -qc 软件名</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">例：rpm -qc mplayer</pre>
<pre style="background: snow; margin-left: 0cm">6）查看一个已经安装软件的文档安装位置：</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">语法格式： rpm -qd 软件名</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">例：rpm -qd mplayer</pre>
<pre style="background: snow; margin-left: 0cm">7）查看一下已安装软件所依赖的软件包及文件；</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">语法格式： rpm -qR 软件名</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">例：rpm -qR mplayer</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm"><strong>注</strong>：可以把几个参数组合起来用，如 rpm -qil mplayer</pre>
</div>
<p><em>对于未安装的软件包的查看</em> :查看的前提是当前目录下已存在一个.rpm文件。 </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">1）查看一个软件包的用途、版本等信息；</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">语法： rpm -qpi file.rpm</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">例：rpm -qpi mplayer-1.0pre7try2-2.i386.rpm</pre>
<pre style="background: snow; margin-left: 0cm">2）查看一件软件包所包含的文件；</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">语法： rpm -qpl file.rpm</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">例：rpm -qpl mplayer-1.0pre7try2-2.i386.rpm</pre>
<pre style="background: snow; margin-left: 0cm">3）查看软件包的文档所在的位置；</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">语法： rpm -qpd file.rpm</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">例：rpm -qpd mplayer-1.0pre7try2-2.i386.rpm</pre>
<pre style="background: snow; margin-left: 0cm">4）查看一个软件包的配置文件；</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">语法： rpm -qpc file.rpm</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">例：rpm -qpc mplayer-1.0pre7try2-2.i386.rpm</pre>
<pre style="background: snow; margin-left: 0cm">5）查看一个软件包的依赖关系</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">语法： rpm -qpR file.rpm</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">例：rpm -qpR mplayer-1.0pre7try2-2.i386.rpm</pre>
</div>
<p>3、软件包的安装、升级、删除等； <em>安装和升级一个rpm 包</em> </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">语法： </pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;&nbsp;rpm -ivh file.rpm&nbsp;&nbsp; % 这个是用来安装一个新的rpm 包</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;rpm -Uvh file.rpm&nbsp;&nbsp; % 这是用来升级一个rpm 包</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">% 如果有依赖关系的，需解决依赖关系。</pre>
<pre style="background: snow; margin-left: 0cm">% 如果找不到依赖关系的包，可以用下面的命令强制安装：</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;rpm -ivh --nodeps --force file.rpm </pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;&nbsp;rpm -Uvh --nodeps --force file.rpm</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">例：</pre>
<pre style="background: snow; margin-left: 0cm">rpm -ivh --test mplayer-1.0pre7try2-2.i386.rpm</pre>
<pre style="background: snow; margin-left: 0cm">% --test表示测试，并不真正安装。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">rpm -ivh --relocate /=/usr/local/mplayer mplayer-1.0pre7try2-2.i386.rpm</pre>
<pre style="background: snow; margin-left: 0cm">% 为软件包指定安装目录：要加 --relocate 参数</pre>
<pre style="background: snow; margin-left: 0cm">% 安装在指定目录中的程序如何调用呢？</pre>
<pre style="background: snow; margin-left: 0cm">% 通常可执行程序都放在安装目录下的bin或者sbin目录中。</pre>
</div>
<p><em>删除一个rpm 包</em> </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">首先查出需要删除的rpm包，然后用下面的命令来卸载：</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">rpm -e 软件包名 </pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">例：rpm -e mplayer&nbsp;&nbsp; % 卸载mplayer</pre>
<pre style="background: snow; margin-left: 0cm">% 如果有其它的rpm依赖于该rpm包，系统会出现警告。</pre>
<pre style="background: snow; margin-left: 0cm">% 如果一定要卸载，可以用选项 --nodeps 忽略依赖关系。但最好不要这么做。</pre>
</div>
<p><strong>四、RPM管理包管理器支持网络安装和查询</strong> </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">rpm&nbsp;[选项]&nbsp;rpm包的http或者ftp的地址</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">比如我们想通过 Fedora Core 4.0 的一个镜像查询、安装软件包。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">rpm -qpi http://mirrors.kernel.org/.../RPMS/rsh-0.17-29.rpm</pre>
<pre style="background: snow; margin-left: 0cm">% 查询</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">rpm -ivh http://mirrors.kernel.org/.../RPMS/rsh-0.17-29.rpm</pre>
<pre style="background: snow; margin-left: 0cm">% 安装</pre>
</div>
<p><strong>五、对已安装rpm包查询的一点补充</strong> </p>
<p>可以用 locate来查询一些软件的安装位置，可能需要先运行updatedb来更新已安装软件库 </p>
<p><strong>六、从rpm软件包抽取文件</strong> </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">rpm2cpio xxx.rpm | cpio -idmv</pre>
<pre style="background: snow; margin-left: 0cm">% i 表示提取文件，v 表示指示执行进程</pre>
<pre style="background: snow; margin-left: 0cm">% d 表示根据包中文件原来的路径建立目录 </pre>
<pre style="background: snow; margin-left: 0cm">% m 表示保持文件的更新时间</pre>
</div>
<img src ="http://www.blogjava.net/chenlb/aggbug/188231.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenlb/" target="_blank">流浪汗</a> 2008-03-24 14:17 <a href="http://www.blogjava.net/chenlb/articles/188231.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux 常用命令</title><link>http://www.blogjava.net/chenlb/articles/188188.html</link><dc:creator>流浪汗</dc:creator><author>流浪汗</author><pubDate>Mon, 24 Mar 2008 03:40:00 GMT</pubDate><guid>http://www.blogjava.net/chenlb/articles/188188.html</guid><wfw:comment>http://www.blogjava.net/chenlb/comments/188188.html</wfw:comment><comments>http://www.blogjava.net/chenlb/articles/188188.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenlb/comments/commentRss/188188.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenlb/services/trackbacks/188188.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 转载:&nbsp;http://www.math.ecnu.edu.cn/~jypan/linux/command/&nbsp;Linux 常用命令                                    Linux 系统常用命令格式：                                               ...&nbsp;&nbsp;<a href='http://www.blogjava.net/chenlb/articles/188188.html'>阅读全文</a><img src ="http://www.blogjava.net/chenlb/aggbug/188188.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenlb/" target="_blank">流浪汗</a> 2008-03-24 11:40 <a href="http://www.blogjava.net/chenlb/articles/188188.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux find 命令</title><link>http://www.blogjava.net/chenlb/articles/188152.html</link><dc:creator>流浪汗</dc:creator><author>流浪汗</author><pubDate>Mon, 24 Mar 2008 02:10:00 GMT</pubDate><guid>http://www.blogjava.net/chenlb/articles/188152.html</guid><wfw:comment>http://www.blogjava.net/chenlb/comments/188152.html</wfw:comment><comments>http://www.blogjava.net/chenlb/articles/188152.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/chenlb/comments/commentRss/188152.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/chenlb/services/trackbacks/188152.html</trackback:ping><description><![CDATA[转载: <a href="http://www.math.ecnu.edu.cn/~jypan/linux/command/find.htm">http://www.math.ecnu.edu.cn/~jypan/linux/command/find.htm</a><br />
<div style="border-right: medium none; padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 2pt; border-left: medium none; padding-top: 0cm; border-bottom: black 3pt solid">
<h1>&nbsp;</h1>
<h1>find <span style="font-family: 宋体">命令</span> </h1>
</div>
<p>在目录结构中搜索文件，并执行指定的操作。此命令提供了相当多的查找条件，功能很强大。 </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">语法：find [起始目录] 寻找条件 操作</pre>
</div>
<p>说明：find命令从指定的起始目录开始，递归地搜索其各个子目录，查找满足寻找条件 的文件并对之采取相关的操作。该命令提供的寻找条件可以是一个用逻辑运算符 not、and、or 组成的复合条件。逻辑运 算符 and、or、not 的含义为： </p>
<p>(1) and：逻辑与，在命令中用 -a 表示，是系统缺省的选项，表示只有当所给的条件都满足时，寻找条件才算满足。例如： </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">find -name 'tmp' -xtype c -user 'inin'</pre>
<pre style="background: snow; margin-left: 0cm">% 该命令寻找三个给定条件都满足的所有文件</pre>
</div>
<p>(2) or：逻辑或，在命令中用 -o 表示。该运算符表示只要所给的条件中有一个满足时，寻找条件就算满足。例如： </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">find -name 'tmp' -o -name 'mina*'</pre>
<pre style="background: snow; margin-left: 0cm">% 该命令查询文件名为 tmp 或是匹配 mina* 的所有文件。</pre>
</div>
<p>(3) not：逻辑非，在命令中用 ! 表示。该运算符表示查找不满足所给条件的文件。例如： </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">find ! -name 'tmp'</pre>
<pre style="background: snow; margin-left: 0cm">% 该命令查询文件名不是 tmp 的所有文件。</pre>
</div>
<p>需要说明的是：当使用很多的逻辑选项时，可以用括号把这些选项括起来。为了避免 Shell本身对括号引起误解，在话号前需要加转义字符 " 来去除括号的意义。例： </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">find "( -name 'tmp' -xtype c -user 'inin' ")</pre>
</div>
<p><strong>该命令的各选项含义如下：</strong> </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">首先,下列各个选项中的 n 值可以有三种输入方式，假设 n 为20，则：</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;+20 表示20以后（21，22，23等）</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;-20 表示20以前（19，18，17等）</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;&nbsp; 20&nbsp;表示正好是20</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">以名称和文件属性查找。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;-name '字串'&nbsp;查找文件名匹配所给字串的所有文件，字串内可用通配符 *、?、[ ]。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;-lname '字串' 查找文件名匹配所给字串的所有符号链接文件，字串内可用通配符 *、?、[ ]。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;-gid n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查找属于ID号为 n 的用户组的所有文件。</pre>
<pre style="background: snow; margin-left: 0cm"> &nbsp;-uid n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查找属于ID号为 n 的用户的所有文件。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;-group '字串' 查找属于用户组名为所给字串的所有的文件。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;-user '字串'&nbsp;查找属于用户名为所给字串的所有的文件。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;-empty&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查找大小为 0的目录或文件。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;-path '字串'&nbsp;查找路径名匹配所给字串的所有文件，字串内可用通配符*、?、[ ]。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;-perm 权限&nbsp;&nbsp;&nbsp; 查找具有指定权限的文件和目录，权限的表示可以如711，644。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;-size n[bckw] 查找指定文件大小的文件，n 后面的字符表示单位，缺省为 b，代表512字节的块。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;-type x&nbsp;&nbsp; 查找类型为 x 的文件，x 为下列字符之一：</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;&nbsp;&nbsp; b 块设备文件</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;&nbsp;&nbsp; c 字符设备文件</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;&nbsp;&nbsp; d 目录文件</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;&nbsp;&nbsp; p 命名管道（FIFO）</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;&nbsp;&nbsp; f 普通文件</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;&nbsp;&nbsp; l 符号链接文件（symbolic links）</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;&nbsp;&nbsp; s socket文件</pre>
<pre style="background: snow; margin-left: 0cm">-xtype x 与 -type 基本相同，但只查找符号链接文件。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">以时间为条件查找</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;-amin n&nbsp;查找n分钟以前被访问过的所有文件。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;-atime n 查找n天以前被访问过的所有文件。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;-cmin n&nbsp;查找n分钟以前文件状态被修改过的所有文件。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;-ctime n 查找n天以前文件状态被修改过的所有文件。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;-mmin n&nbsp;查找n分钟以前文件内容被修改过的所有文件。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;-mtime n 查找n天以前文件内容被修改过的所有文件。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;</pre>
<pre style="background: snow; margin-left: 0cm">可执行的操作</pre>
<pre style="background: snow; margin-left: 0cm">-exec 命令名称 {}&nbsp;对符合条件的文件执行所给的Linux 命令，而不询问用户是否需要执行该命令。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {}表示命令的参数即为所找到的文件；命令的末尾必须以&#8220; "；&#8221;结束。</pre>
<pre style="background: snow; margin-left: 0cm">-ok 命令名称 {}&nbsp;&nbsp; 对符合条件的文件执行所给的Linux 命令，与exec不同的是，</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 它会询问用户是否需要执行该命令。</pre>
<pre style="background: snow; margin-left: 0cm">-ls&nbsp;&nbsp;&nbsp; 详细列出所找到的所有文件。</pre>
<pre style="background: snow; margin-left: 0cm">-fprintf 文件名 将找到的文件名写入指定文件。</pre>
<pre style="background: snow; margin-left: 0cm">-print&nbsp;&nbsp; 在标准输出设备上显示查找出的文件名。</pre>
<pre style="background: snow; margin-left: 0cm">-printf&nbsp;格式 格式的写法请参考有关C语言的书。</pre>
</div>
<p><strong>指令实例：</strong> </p>
<div style="border-right: #777777 1pt solid; padding-right: 6pt; border-top: #777777 1pt solid; padding-left: 6pt; background: snow; padding-bottom: 6pt; margin-left: 30pt; border-left: #777777 1pt solid; margin-right: 0cm; padding-top: 6pt; border-bottom: #777777 1pt solid">
<pre style="background: snow; margin-left: 0cm">find . -name &#8216;main*' -exec more {} ";</pre>
<pre style="background: snow; margin-left: 0cm">% 查找当前目录中所有以main开头的文件，并显示这些文件的内容。</pre>
<pre style="background: snow; margin-left: 0cm">find . "( -name a.out -o -name &#8216;*.o'")&nbsp;-atime +7 -exec rm {} ";</pre>
<pre style="background: snow; margin-left: 0cm">% 删除当前目录下所有一周之内没有被访问过的 a .out 或 *.o 文件。</pre>
<pre style="background: snow; margin-left: 0cm">% 命令中的&#8220;.&#8221;表示当前目录，此时 find 将从当前目录开始，</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;逐个在其子目录中查找满足后面指定条件的文件。</pre>
<pre style="background: snow; margin-left: 0cm">% &#8220;"(&#8221; 和 &#8220;")&#8221; 表示括号（），其中的 &#8220;"&#8221;&nbsp;称为转义符。之所以这样写是由于&nbsp;&nbsp;&nbsp;&nbsp; </pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;&nbsp;对 Shell 而言，（和）另有不同的含义，而不是这里的用于组合条件的用途。</pre>
<pre style="background: snow; margin-left: 0cm">% &#8220;-name a.out&#8221; 是指要查找名为a.out的文件； </pre>
<pre style="background: snow; margin-left: 0cm">% &#8220;-name &#8216;*.o'&#8221; 是指要查找所有名字以 .o 结尾的文件。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;这两个 -name 之间的 -o 表示逻辑或（or），即查找名字为a.out或名字以 .o结尾的文件。</pre>
<pre style="background: snow; margin-left: 0cm">% find在当前目录及其子目录下找到这佯的文件之后，再进行判断，看其最后访问时间&nbsp;&nbsp; </pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;&nbsp;是否在7天以前（条件 -atime +7），若是，则对该文件执行删除命令（-exec rm {} ";）。</pre>
<pre style="background: snow; margin-left: 0cm">&nbsp;其中 {} 代表当前查到的符合条件的文件名，"；则是语法所要求的。</pre>
</div>
<img src ="http://www.blogjava.net/chenlb/aggbug/188152.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/chenlb/" target="_blank">流浪汗</a> 2008-03-24 10:10 <a href="http://www.blogjava.net/chenlb/articles/188152.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>