﻿<?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>C++博客-行戒高绝-随笔分类-嵌入式linux笔记</title><link>http://www.cppblog.com/xingjiegaojue/category/15993.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 04 Mar 2011 08:09:30 GMT</lastBuildDate><pubDate>Fri, 04 Mar 2011 08:09:30 GMT</pubDate><ttl>60</ttl><item><title>底层文件访问</title><link>http://www.cppblog.com/xingjiegaojue/archive/2011/03/03/141076.html</link><dc:creator>张纶</dc:creator><author>张纶</author><pubDate>Thu, 03 Mar 2011 11:10:00 GMT</pubDate><guid>http://www.cppblog.com/xingjiegaojue/archive/2011/03/03/141076.html</guid><wfw:comment>http://www.cppblog.com/xingjiegaojue/comments/141076.html</wfw:comment><comments>http://www.cppblog.com/xingjiegaojue/archive/2011/03/03/141076.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xingjiegaojue/comments/commentRss/141076.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xingjiegaojue/services/trackbacks/141076.html</trackback:ping><description><![CDATA[1、lseek系统调用<br>&nbsp;&nbsp;&nbsp; #include&lt;unistd.h&gt;<br>&nbsp;&nbsp;&nbsp; #include&lt;sys/types.h&gt;<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; off_t lseek(int fildes,off_t offset,int whence);<br>&nbsp;&nbsp;&nbsp; whence可以取下面其一：<br>&nbsp;&nbsp;&nbsp; SEEK_SET: offset是一个绝对位置。<br>&nbsp;&nbsp;&nbsp; SEEK_CUR: offset是相对于当前位置的一个相对位置。<br>&nbsp;&nbsp;&nbsp; SEEK_END: offset是相对于文件尾到一个相对位置。<br>&nbsp;&nbsp;&nbsp; 返回从文件头到文件指针被设置处到字节偏移值，失败时返回-1。<br>&nbsp;&nbsp;&nbsp; 例子：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008080">&nbsp;1</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">unistd.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;2</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">stdlib.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;3</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">stdio.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;4</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">sys</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">types.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;5</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">fcntl.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;6</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">sys</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">stat.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;7</span>&nbsp;<span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;8</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br></span><span style="COLOR: #008080">&nbsp;9</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">10</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;fd;<br></span><span style="COLOR: #008080">11</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;off_t&nbsp;off;<br></span><span style="COLOR: #008080">12</span>&nbsp;<span style="COLOR: #000000"><br></span><span style="COLOR: #008080">13</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fd</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">open(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">./text.txt</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,O_RDWR);<br></span><span style="COLOR: #008080">14</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(fd</span><span style="COLOR: #000000">==-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">15</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">16</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">fail&nbsp;to&nbsp;open!\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">13</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">17</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">18</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">19</span>&nbsp;<span style="COLOR: #000000"><br></span><span style="COLOR: #008080">20</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">locating!\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">21</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">off=lseek(fd,5,SEEK_CUR);</span><span style="COLOR: #008000">&nbsp;&nbsp;&nbsp;&nbsp; //可以轮番测试<br></span><span style="COLOR: #008080">22</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;off</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">lseek(fd,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,SEEK_END);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //off_set为0，所以在text.txt文档末尾添加内容。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果off_set为1，则在文档末尾到1个字符后面<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 插入内容。<br></span><span style="COLOR: #008080">23</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Writting!\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">24</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,off);<br></span><span style="COLOR: #008080">25</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(write(fd,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">hello\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">==-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">26</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">27</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">fail&nbsp;to&nbsp;write!\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">14</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">28</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">29</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">30</span>&nbsp;<span style="COLOR: #000000"><br></span><span style="COLOR: #008080">31</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;close(fd);<br></span><span style="COLOR: #008080">32</span>&nbsp;<span style="COLOR: #000000"><br></span><span style="COLOR: #008080">33</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">34</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<br>2、dup和dup2系统调用<br>&nbsp;&nbsp; &nbsp;#include&lt;unistd.h&gt;<br>&nbsp;&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp; int dup(int fildes);<br>&nbsp;&nbsp;&nbsp; int dup2(int fildes,int fildes2);<br>&nbsp;&nbsp;&nbsp; <br>dup:<br>&nbsp;&nbsp;&nbsp; dup系统调用提供了一种复制文件描述符的方法，使我们能够通过两个或者更多个不同到描述符来访问同一个文件。dup复制文件描述符fildes，返回<br>一个新的描述符。<br>&nbsp;&nbsp;&nbsp; 例子：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008080">&nbsp;1</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">stdio.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;2</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">unistd.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;3</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">fcntl.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;4</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">stdlib.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;5</span>&nbsp;<span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;6</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br></span><span style="COLOR: #008080">&nbsp;7</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">&nbsp;8</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;fd;<br></span><span style="COLOR: #008080">&nbsp;9</span>&nbsp;<span style="COLOR: #000000"><br></span><span style="COLOR: #008080">10</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fd</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">open(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">./text.txt</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,O_RDWR);<br></span><span style="COLOR: #008080">11</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(fd</span><span style="COLOR: #000000">==-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">12</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">13</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;perror(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">fail&nbsp;to&nbsp;open.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">14</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">15</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">16</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">17</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">open&nbsp;ok\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">18</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">19</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(close(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">==-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">关掉文件描述符1(标准输出)后，则当前最小<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;到文件描述符为1，因为0没有关掉。</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">20</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">21</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;perror(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">fail&nbsp;to&nbsp;close.\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">22</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">23</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">24</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">25</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(dup(fd)</span><span style="COLOR: #000000">==-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">使用dup后，返回当前最小到文件描述符1，所以用printf<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;函数打印到内容本来在屏幕上到现在转到<span style="COLOR: #008000">text.txt中。</span></span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">26</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">27</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;perror(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">fail&nbsp;to&nbsp;dup.\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">28</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">29</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">30</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">31</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Dup&nbsp;OK\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">32</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">33</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">hello&nbsp;world.\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">34</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">35</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">36</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;</span></div>
<br>&nbsp;&nbsp;&nbsp; <br>dup2：<br>&nbsp;&nbsp;&nbsp; dup2系统调用则通过明确指定目标描述符来把一个文件描述符复制到另一个。<br>&nbsp;&nbsp;&nbsp; dup2函数跟dup函数相似，但dup2函数允许调用者规定一个有效描述符和目标描述符的id。dup2函数成功返回时，目标描述符（dup2函数的第二个参数）将变成源描述符（dup2函数的第一个参数）的复制品，换句话说，两个文件描述符现在都指向同一个文件，并且是函数第一个参数指向的文件。下面我们用一段代码加以说明：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="COLOR: #008080">&nbsp;1</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">stdio.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;2</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">unistd.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;3</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">fcntl.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;4</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">stdlib.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;5</span>&nbsp;<span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;6</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br></span><span style="COLOR: #008080">&nbsp;7</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">&nbsp;8</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;fd;<br></span><span style="COLOR: #008080">&nbsp;9</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">10</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fd</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">open(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">./text.txt</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,O_RDWR);<br></span><span style="COLOR: #008080">11</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(fd</span><span style="COLOR: #000000">==-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">12</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">13</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;perror(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">fail&nbsp;to&nbsp;open.\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">14</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">15</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">16</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">17</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">open&nbsp;OK\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">18</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">19</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(dup2(fd,</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">==-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">现在1重定向到text.txt，所有到printf输出都重定向到该文件。</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">20</span>&nbsp;<span style="COLOR: #008000"></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="COLOR: #008080">21</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;perror(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">fail&nbsp;to&nbsp;dup</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">22</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">23</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008080">24</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">25</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">dup2&nbsp;STDOUT&nbsp;OK.\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">26</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">27</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">hello&nbsp;world!\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">28</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">29</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">30</span>&nbsp;<span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span></div>
<br>
<img src ="http://www.cppblog.com/xingjiegaojue/aggbug/141076.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xingjiegaojue/" target="_blank">张纶</a> 2011-03-03 19:10 <a href="http://www.cppblog.com/xingjiegaojue/archive/2011/03/03/141076.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《LInux与Unix Shell编程指南》笔记之条件测试</title><link>http://www.cppblog.com/xingjiegaojue/archive/2011/02/26/140676.html</link><dc:creator>张纶</dc:creator><author>张纶</author><pubDate>Sat, 26 Feb 2011 01:58:00 GMT</pubDate><guid>http://www.cppblog.com/xingjiegaojue/archive/2011/02/26/140676.html</guid><wfw:comment>http://www.cppblog.com/xingjiegaojue/comments/140676.html</wfw:comment><comments>http://www.cppblog.com/xingjiegaojue/archive/2011/02/26/140676.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xingjiegaojue/comments/commentRss/140676.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xingjiegaojue/services/trackbacks/140676.html</trackback:ping><description><![CDATA[<span style="FONT-SIZE: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;条件测试<br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.cppblog.com/Files/xingjiegaojue/017.PDF">点击打开本章pdf文档</a><br>&nbsp;&nbsp;&nbsp; 有时判断字符串是否相等或检查文件状态或是数字测试等。Test命令用于测试字符串，文件状态和数字。<br>&nbsp;&nbsp; &nbsp;测试文件状态<br>&nbsp;&nbsp; &nbsp;格式<br>&nbsp;&nbsp; &nbsp;test condition<br>&nbsp;&nbsp; &nbsp;或 [ condition ]<br>&nbsp;&nbsp; &nbsp;使用方括号时，要注意在条件两边加上空格。<br>&nbsp;&nbsp; &nbsp;常用的条件表达式为：<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;文件测试状态<br>&nbsp;&nbsp; &nbsp;-----------------------------------------------------------------------<br>&nbsp;&nbsp;&nbsp;-d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 目录&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-s&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;文件长度大于0、非空<br>&nbsp;&nbsp;&nbsp;-f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;正规文件&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-w&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 可写<br>&nbsp;&nbsp;&nbsp;-L&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;符号链接&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-u&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;文件有suid位设置<br>&nbsp;&nbsp;&nbsp;-r&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;可读&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-x&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;可执行<br>&nbsp;&nbsp;&nbsp;-z&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; 字符串为空<br>&nbsp;&nbsp; &nbsp;-----------------------------------------------------------------------<br>&nbsp;&nbsp; &nbsp;测试的结果可以用$?的值来判断，0表示成功，其他为失败。<br>&nbsp;&nbsp; &nbsp;下面测试文件xaa是否可写：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;ls&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">l<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">rw</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">r</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">r</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">28</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">02</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">23</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">12</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">44</span><span style="COLOR: #000000">&nbsp;xaa<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">rw</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">r</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">r</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">28</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">02</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">23</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">12</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">44</span><span style="COLOR: #000000">&nbsp;xab<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">rw</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">r</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">r</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">28</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">02</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">23</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">12</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">44</span><span style="COLOR: #000000">&nbsp;xac<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;[&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">w&nbsp;xaa&nbsp;]<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;echo&nbsp;$</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">0</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;证明是可写的.下面测试是否可运行:<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;[&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">x&nbsp;xaa&nbsp;]<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;echo&nbsp;$</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">1</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;要测试其他的类似.<br>&nbsp;&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp; 测试时使用逻辑操作符<br>&nbsp;&nbsp;&nbsp; -a &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 逻辑与，操作符两边均为真，结果为真，否则为假。<br>&nbsp;&nbsp;&nbsp; -o &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 逻辑或，操作符两边一边为真，结果为真，否则为假。<br>&nbsp;&nbsp;&nbsp;&nbsp;!&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 逻辑否，条件为假，结果为真。<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 下面的例子测试两个文件xaa和xab是否均可读.<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;[&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">w&nbsp;xab&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">a&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">w&nbsp;xac&nbsp;]<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;echo&nbsp;$</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">0</span></div>
&nbsp;&nbsp;&nbsp; 测试xac是否可执行或者xab是否可写,使用逻辑或操作.<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;[&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">w&nbsp;xab&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">o&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">x&nbsp;xac&nbsp;]<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;echo&nbsp;$</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">0</span></div>
&nbsp;&nbsp;&nbsp; 测试xac是否可执行而且xab是否可写,使用逻辑或操作.<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;[&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">w&nbsp;xab&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">a&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">x&nbsp;xac&nbsp;]<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;echo&nbsp;$</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">1</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; 字符串测试<br>&nbsp;&nbsp;&nbsp; 5种格式:<span style="FONT-SIZE: 14pt">
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;test&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">string</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;test&nbsp;string_operator&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">string</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;test&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">string</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;string_operator&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">string</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;string_operator&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;]<br>&nbsp;&nbsp;&nbsp;&nbsp;[&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;string_operator&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;]</span></div>
</span>&nbsp;&nbsp;&nbsp; string_operator可为:<br>&nbsp;&nbsp;&nbsp; =&nbsp;&nbsp;&nbsp; 两个字符串相等<br>&nbsp;&nbsp;&nbsp; !=&nbsp;&nbsp;&nbsp; 两个字符串不等<br>&nbsp;&nbsp;&nbsp; -z&nbsp;&nbsp;&nbsp; 空串<br>&nbsp;&nbsp;&nbsp; -n&nbsp;&nbsp;&nbsp; 非空串<br>&nbsp;&nbsp;&nbsp; 例如:<br>&nbsp;&nbsp;&nbsp; 测试环境变量EDITOR是否为空:<span style="FONT-SIZE: 14pt">
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;echo&nbsp;$EDITOR<br><br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;[&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">z&nbsp;$EDITOR&nbsp;]<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;echo&nbsp;$</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">0</span></div>
</span>&nbsp;&nbsp;&nbsp; 返回为真,所以EDITOR是空.<br>&nbsp;&nbsp;&nbsp; 修改EDITOR:<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;EDITOR</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">vi</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;echo&nbsp;$EDITOR<br>&nbsp;&nbsp;&nbsp;&nbsp;vi<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;[&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">z&nbsp;$EDITOR&nbsp;]<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;echo&nbsp;$</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">1</span></div>
&nbsp;&nbsp;&nbsp; 测试两个字符串:<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;AAA</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">aaa</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;BBB</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">bbb</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;AAA1</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">aaa</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;[&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">$AAA</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">$BBB</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;]<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;echo&nbsp;$</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;[&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">$AAA</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">$AAA</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;]<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;echo&nbsp;$</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">0</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; 测试两个数值的大小:<br>&nbsp;&nbsp;&nbsp; 格式:<br>&nbsp;&nbsp;&nbsp; "number" numberic_operator "number"<br>&nbsp;&nbsp;&nbsp; 或者<br>&nbsp;&nbsp;&nbsp; [ "number" numberic_operator "number" ]<br>&nbsp;&nbsp;&nbsp; numberic_operator可为:<br>&nbsp;&nbsp;&nbsp; -eq&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数值相等。<br>&nbsp;&nbsp;&nbsp; -ne&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;数值不相等。<br>&nbsp;&nbsp;&nbsp; -gt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;第一个数大于第二个数。<br>&nbsp;&nbsp;&nbsp; -lt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第一个数小于第二个数。<br>&nbsp;&nbsp;&nbsp; -le&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;第一个数小于等于第二个数。<br>&nbsp;&nbsp;&nbsp; -ge&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;第一个数大于等于第二个数。<br>&nbsp;&nbsp;&nbsp; 例如:<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;NUMBER</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">130</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;[&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">$NUMBER</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">eq&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">130</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;]<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;echo&nbsp;$</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">0</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; expr用法<br>&nbsp;&nbsp;&nbsp; 格式:<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;expr&nbsp;argument&nbsp;</span><span style="COLOR: #0000ff">operator</span><span style="COLOR: #000000">&nbsp;argument</span></div>
&nbsp;&nbsp;&nbsp; 可以作为手工计数器:<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;expr&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">20</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;expr&nbsp;</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;expr&nbsp;</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;expr&nbsp;</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;expr&nbsp;</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">&nbsp;\</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">90</span></div>
&nbsp;&nbsp;&nbsp; 注意:operator左右的数字要有空格:<br>&nbsp;&nbsp;&nbsp; 如:<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;expr&nbsp;</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">3</span></div>
&nbsp;&nbsp;&nbsp; 没有达到预期效果:而且使用乘号时也要用反斜线屏蔽其特殊意义.<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; expr还可用于锃亮计算,如一个循环体需要循环次数:<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;LOOP</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;LOOP</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">`expr&nbsp;$LOOP&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">`</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; 数值测试<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;VALUE_1</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">12</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;VALUE_2</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">13</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;expr&nbsp;$VALUE_1&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;$VALUE_2<br>&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;$</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">1</span></div>
&nbsp;&nbsp;&nbsp; 字符串测试:<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;VALUE</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">hello</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;expr&nbsp;$VALUE</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">hello</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;hello</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">hello<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;expr&nbsp;$VALUE&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">hello</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;echo&nbsp;$</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">0</span></div>
&nbsp;&nbsp;&nbsp; 有两点注意:<br>&nbsp;&nbsp;&nbsp; 一是$VALUE = "hello"的等号左右的字符串要有空格,没有空格没有达到预期结果,如上所示;<br>&nbsp;&nbsp;&nbsp; 二是用expr测试的返回结果真为1,假为0.与$?的结果相反.<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 模式匹配<br>&nbsp;&nbsp;&nbsp; 使用expr通过指定冒号选项计算字符串中字符数 .".*"意即任何字符重复0次或多次.<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;VALUE</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">accounts.doc<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;expr&nbsp;$VALUE&nbsp;:&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">.*</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">12</span></div>
&nbsp;&nbsp;&nbsp; 在expr中可以使用字符串匹配操作，这里使用模式 .doc抽取文件附属名。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;expr&nbsp;$VALUE&nbsp;:&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">\(.*\).doc</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;accounts</span></div>
&nbsp;<br>
<img src ="http://www.cppblog.com/xingjiegaojue/aggbug/140676.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xingjiegaojue/" target="_blank">张纶</a> 2011-02-26 09:58 <a href="http://www.cppblog.com/xingjiegaojue/archive/2011/02/26/140676.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《LInux与Unix Shell编程指南》笔记之环境与Shell变量</title><link>http://www.cppblog.com/xingjiegaojue/archive/2011/02/25/140666.html</link><dc:creator>张纶</dc:creator><author>张纶</author><pubDate>Fri, 25 Feb 2011 11:35:00 GMT</pubDate><guid>http://www.cppblog.com/xingjiegaojue/archive/2011/02/25/140666.html</guid><wfw:comment>http://www.cppblog.com/xingjiegaojue/comments/140666.html</wfw:comment><comments>http://www.cppblog.com/xingjiegaojue/archive/2011/02/25/140666.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xingjiegaojue/comments/commentRss/140666.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xingjiegaojue/services/trackbacks/140666.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;环境...&nbsp;&nbsp;<a href='http://www.cppblog.com/xingjiegaojue/archive/2011/02/25/140666.html'>阅读全文</a><img src ="http://www.cppblog.com/xingjiegaojue/aggbug/140666.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xingjiegaojue/" target="_blank">张纶</a> 2011-02-25 19:35 <a href="http://www.cppblog.com/xingjiegaojue/archive/2011/02/25/140666.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《LInux与Unix Shell编程指南》笔记之tr命令</title><link>http://www.cppblog.com/xingjiegaojue/archive/2011/02/24/140569.html</link><dc:creator>张纶</dc:creator><author>张纶</author><pubDate>Thu, 24 Feb 2011 01:53:00 GMT</pubDate><guid>http://www.cppblog.com/xingjiegaojue/archive/2011/02/24/140569.html</guid><wfw:comment>http://www.cppblog.com/xingjiegaojue/comments/140569.html</wfw:comment><comments>http://www.cppblog.com/xingjiegaojue/archive/2011/02/24/140569.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xingjiegaojue/comments/commentRss/140569.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xingjiegaojue/services/trackbacks/140569.html</trackback:ping><description><![CDATA[<span style="FONT-SIZE: 14pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tr命令<br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.cppblog.com/Files/xingjiegaojue/012.PDF">点击此处打开本章pdf文档</a><br>&nbsp;&nbsp;&nbsp; 作用：主要用于删除文件中控制字符或进行字符转换。<br>&nbsp;&nbsp; &nbsp;常用选项的tr命令格式为：<br>&nbsp;&nbsp; &nbsp;tr -s -c -d ["string1"] ["string2"] input_file<br>&nbsp;&nbsp; &nbsp;解释：<br>&nbsp;&nbsp; &nbsp;-c&nbsp;&nbsp; &nbsp;用string1的字符集的补集替换此string1，要求字符集为ASCII<br>&nbsp;&nbsp; &nbsp;-d&nbsp;&nbsp; &nbsp;删除string中所有输入字符<br>&nbsp;&nbsp; &nbsp;-s&nbsp;&nbsp; &nbsp;删除所有重复出现字符序列，只保留一个，即将重复出现字符串压缩为一个字符串<br>&nbsp;&nbsp; &nbsp;input_file是转换文件名。<br>&nbsp;&nbsp; &nbsp;使用tr时，可以指定字符串序列或范围作为形成字符串的模式，指定字符串1或字符串2的内容时，只能使用单字符或<br>字符串范围或列表。<br>&nbsp;&nbsp; &nbsp;[a-z]&nbsp;&nbsp; &nbsp;a-z内的字符组成的字符串<br>&nbsp;&nbsp; &nbsp;[A-Z]&nbsp;&nbsp; &nbsp;A-Z内的字符组成的字符串<br>&nbsp;&nbsp; &nbsp;[0-9]&nbsp;&nbsp; &nbsp;数字串<br>&nbsp;&nbsp; &nbsp;/octal&nbsp;&nbsp; &nbsp;一个三位的八进制数，对应有效的ASCII字符<br>&nbsp;&nbsp; &nbsp;[o*n]&nbsp;&nbsp; &nbsp;表示字符o重复出现指定次数n。如[o*2]匹配oo的字符串。<br>&nbsp;&nbsp; &nbsp;当用一个单字符替换一个字符串或字符范围时，注意字符并不放在方括号里([])。一些系统也可以使用方括号，例如可以<br>写成 ["\012"]或"\012"。tr也允许不加引号，因此命令中看到单引号而不是双引号时也不要感到奇怪。<br>&nbsp;&nbsp; &nbsp;像大多数系统工具一样， tr 也受特定字符的影响。因此如果要匹配这些字符，需使用反斜线屏蔽其特殊含义。例如，<br>用 \{指定花括号左边可以屏蔽其特殊含义。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tr中特定控制字符的不同表达式<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;速记符&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;含义&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;八进制方式<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ctrl</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">G铃声&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\</span><span style="COLOR: #000000">007<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">\b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ctrl</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">H退格符&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\</span><span style="COLOR: #000000">010</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ctrl</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">L走行换页&nbsp;&nbsp;&nbsp;\</span><span style="COLOR: #000000">014</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ctrl</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">J新行&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\</span><span style="COLOR: #000000">012</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ctrl</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">M回车&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;\</span><span style="COLOR: #000000">015</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ctrl</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">I&nbsp;tab键&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\</span><span style="COLOR: #000000">011</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\v&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ctrl</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">X&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\</span><span style="COLOR: #000000">030</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; <strong><em>a、去除重复出现的字符<br></em></strong>&nbsp;&nbsp;&nbsp; 创建文件oops.txt，内容为：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">]#&nbsp;cat&nbsp;oops.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;And&nbsp;the&nbsp;cowwwwwws&nbsp;went&nbsp;homeeeeeeee<br>&nbsp;&nbsp;&nbsp;&nbsp;Or&nbsp;did&nbsp;theyyyy</span></div>
&nbsp;&nbsp;&nbsp; 在这里，对象是字符，目的是去重，所以使用-s选项：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">]#&nbsp;tr&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">s&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">[a-z]</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;oops.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;And&nbsp;the&nbsp;cows&nbsp;went&nbsp;home<br>&nbsp;&nbsp;&nbsp;&nbsp;Or&nbsp;did&nbsp;they</span></div>
&nbsp;&nbsp;&nbsp; 也可以这样，利用管道冲送：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">]#&nbsp;cat&nbsp;oops.txt&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">&nbsp;tr&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">s&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">[a-z]</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;And&nbsp;the&nbsp;cows&nbsp;went&nbsp;home<br>&nbsp;&nbsp;&nbsp;&nbsp;Or&nbsp;did&nbsp;they</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; <strong><em>b、删除空行<br></em></strong>&nbsp;&nbsp;&nbsp; 创建文件plane.txt，内容为：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">]#&nbsp;cat&nbsp;plane.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">987932</span><span style="COLOR: #000000">&nbsp;Spitfire<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">190992</span><span style="COLOR: #000000">&nbsp;Lancaster<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">238991</span><span style="COLOR: #000000">&nbsp;Typhoon<br>&nbsp;&nbsp;&nbsp;&nbsp;</span></div>
&nbsp;&nbsp;&nbsp; 其实，上面的内容为：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">987932</span><span style="COLOR: #000000">&nbsp;Spitfire\n\n\n&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">190992</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Lancaster\n\n&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">238991</span><span style="COLOR: #000000">&nbsp;Typhoon\n</span></div>
&nbsp;&nbsp;&nbsp; 使用-s选项后应为：987932 Spitfire\n&nbsp;&nbsp;&nbsp; 190992&nbsp;&nbsp;&nbsp; Lancaster\n&nbsp;&nbsp;&nbsp; 238991 Typhoon\n<br>&nbsp;&nbsp;&nbsp; 换行的八进制为\012，所以：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">]#&nbsp;tr&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">s&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">[\012]</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;plane.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">987932</span><span style="COLOR: #000000">&nbsp;Spitfire<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">190992</span><span style="COLOR: #000000">&nbsp;Lancaster<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">238991</span><span style="COLOR: #000000">&nbsp;Typhoon</span></div>
<br><strong><em>&nbsp;&nbsp;&nbsp; c、大写到小写<br></em></strong>&nbsp;&nbsp;&nbsp; 大写为[A-Z]或[:upper:]，小写为[a-z]或[:lower:]，命令为：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">]#&nbsp;echo&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">May&nbsp;Day,May&nbsp;Day,Going&nbsp;Down..</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">&nbsp;tr&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">[A-Z]</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">[a-z]</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;may&nbsp;day,may&nbsp;day,going&nbsp;down..</span></div>
&nbsp;&nbsp;&nbsp; 小写到大写调过来就可以了。<br>&nbsp;&nbsp;&nbsp;&nbsp;<br><strong><em>&nbsp;&nbsp;&nbsp; d、删除指定字符<br></em></strong>&nbsp;&nbsp;&nbsp; 创建文件diary.txt，内容为：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">]#&nbsp;cat&nbsp;diary.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;monday&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;Tuesday&nbsp;</span><span style="COLOR: #000000">15</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;wednesday&nbsp;</span><span style="COLOR: #000000">15</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">39</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;thursday&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;Friday&nbsp;</span><span style="COLOR: #000000">09</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">30</span></div>
&nbsp;&nbsp;&nbsp; 下面删除不是字母的内容，步骤为先用换行符替代全部非字母的内容，然后删除重复的换行符。其中，替换用-c，删<br>除重复用-s。命令为：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">]#&nbsp;tr&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">cs&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">[a-z][A-Z]</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">[\012*]</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;diary.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;monday<br>&nbsp;&nbsp;&nbsp;&nbsp;Tuesday<br>&nbsp;&nbsp;&nbsp;&nbsp;wednesday<br>&nbsp;&nbsp;&nbsp;&nbsp;thursday<br>&nbsp;&nbsp;&nbsp;&nbsp;Friday</span></div>
&nbsp;&nbsp;&nbsp;<br><strong><em>&nbsp;&nbsp;&nbsp; e、匹配多个字符<br></em></strong>&nbsp;&nbsp;&nbsp; 例如，hdisk.txt的内容为：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">]#&nbsp;cat&nbsp;hdisk.txt<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">1293</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;hdisk3<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">4512</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;hdisk12<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">0000</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;hdisk5<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">4993</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;hdisk12<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;]</span><span style="COLOR: #000000">2994</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;hdisk7</span></div>
&nbsp;&nbsp;&nbsp; 命令为：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">]#&nbsp;tr&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">[0*4]</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;hdisk.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">1293</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;hdisk3<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">4512</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;hdisk12<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">****</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;hdisk5<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">4993</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;hdisk12<br>&nbsp;&nbsp;&nbsp;&nbsp;]</span><span style="COLOR: #000000">2994</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;hdisk7</span></div>
&nbsp;
<img src ="http://www.cppblog.com/xingjiegaojue/aggbug/140569.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xingjiegaojue/" target="_blank">张纶</a> 2011-02-24 09:53 <a href="http://www.cppblog.com/xingjiegaojue/archive/2011/02/24/140569.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《LInux与Unix Shell编程指南》笔记之合并与分割</title><link>http://www.cppblog.com/xingjiegaojue/archive/2011/02/23/140505.html</link><dc:creator>张纶</dc:creator><author>张纶</author><pubDate>Wed, 23 Feb 2011 04:50:00 GMT</pubDate><guid>http://www.cppblog.com/xingjiegaojue/archive/2011/02/23/140505.html</guid><wfw:comment>http://www.cppblog.com/xingjiegaojue/comments/140505.html</wfw:comment><comments>http://www.cppblog.com/xingjiegaojue/archive/2011/02/23/140505.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xingjiegaojue/comments/commentRss/140505.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xingjiegaojue/services/trackbacks/140505.html</trackback:ping><description><![CDATA[<span style="font-size: 14pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;合并与分割<br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.cppblog.com/Files/xingjiegaojue/011.PDF">点击打开本章pdf文档</a><br>&nbsp;&nbsp;&nbsp; <strong style="color: red;">uniq用法<br></strong>&nbsp;&nbsp; &nbsp;作用：从一个文本文件中去除或禁止重复行。<br>&nbsp;&nbsp; &nbsp;uniq与sort命令中唯一性选项的区别：其中，前者去除连续不断出现的行，保留一个；后者去除所有重复行，保留一<br>个。<br>&nbsp;&nbsp; &nbsp;uniq格式：<br>&nbsp;&nbsp; &nbsp;uniq -u d c -f input-file output-file<br>&nbsp;&nbsp; &nbsp;含义：<br>&nbsp;&nbsp; &nbsp;-u&nbsp;&nbsp; &nbsp;只显示不重复行<br>&nbsp;&nbsp; &nbsp;-d&nbsp;&nbsp; &nbsp;只显示有重复数据行，每种重复行只显示其中一行<br>&nbsp;&nbsp; &nbsp;-c&nbsp;&nbsp; &nbsp;打印每一重复行出现次数<br>&nbsp;&nbsp; &nbsp;-f&nbsp;&nbsp; &nbsp;n为数字，前n个域被忽略<br>&nbsp;&nbsp; &nbsp;注意：一些系统不识别-f选项，这时替代使用-n。<br>&nbsp;&nbsp; &nbsp;下面用例子演示上面的选项：<br>&nbsp;&nbsp; <strong>&nbsp;</strong><em><strong>a、创建文件myfile.txt，内容为：<br></strong></em>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;cat&nbsp;myfile.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;May&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Day<br>&nbsp;&nbsp;&nbsp;&nbsp;May&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Day<br>&nbsp;&nbsp;&nbsp;&nbsp;May&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Day<br>&nbsp;&nbsp;&nbsp;&nbsp;Going&nbsp;&nbsp;&nbsp;Down<br>&nbsp;&nbsp;&nbsp;&nbsp;May&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Day</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;<strong><em>b、去除连续出现的重复行：<br></em></strong>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;uniq&nbsp;myfile.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;May&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Day<br>&nbsp;&nbsp;&nbsp;&nbsp;Going&nbsp;&nbsp;&nbsp;Down<br>&nbsp;&nbsp;&nbsp;&nbsp;May&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Day</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;记住，是连续出现的。<br>&nbsp;&nbsp; <strong><em>&nbsp;c、<br></em></strong>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;uniq&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">u&nbsp;myfile.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;Going&nbsp;&nbsp;&nbsp;Down<br>&nbsp;&nbsp;&nbsp;&nbsp;May&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Day</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;上面这段命令的结果的意思是说，存在有字符串Going Down和May Day没有连续出现的情况。虽然myfile.txt的<br>前3行都是May Day但是第5行的May Day没有连续出现。<br>&nbsp;&nbsp; &nbsp;<strong><em>d、<br></em></strong>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;uniq&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">c&nbsp;myfile.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">3</span><span style="color: #000000;">&nbsp;May&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Day<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;Going&nbsp;&nbsp;&nbsp;Down<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;May&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Day</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;上面使用-c选项显示每个重复行数目。<br>&nbsp;&nbsp; &nbsp;<strong><em>e、<br></em></strong>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;uniq&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">d&nbsp;myfile.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;May&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Day</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;上面的-d用来显示重复出现的不唯一行，意思就是说哪些内容是有连续出现的。在这里May Day连续重复出现3次。<br>&nbsp;&nbsp; &nbsp;<strong><em>f、下面来测试特定域 进行测试-f选项：<br></em></strong>&nbsp;&nbsp; &nbsp;创建文本parts.txt，内容为：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;cat&nbsp;parts.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;AK123&nbsp;&nbsp;&nbsp;OP<br>&nbsp;&nbsp;&nbsp;&nbsp;DK122&nbsp;&nbsp;&nbsp;OP<br>&nbsp;&nbsp;&nbsp;&nbsp;EK999&nbsp;&nbsp;&nbsp;OP</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;现在如果测试第1域，则uniq会比较三个相同的OP，因此将返回一行：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;uniq&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">f2&nbsp;parts.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;AK123&nbsp;&nbsp;&nbsp;OP</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;如故'-f'返回错误，替代使用：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;uniq&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">n2&nbsp;parts.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;AK123&nbsp;&nbsp;&nbsp;OP</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; <strong style="color: red;">join用法：<br></strong>&nbsp;&nbsp;&nbsp; 作用：将来自两个分类文本文件的行连在一起。<br>&nbsp;&nbsp;&nbsp; 工作方式：前提是两个文本文件已经分类，里面都有一些元素与另一个文件相关，join就是通过这个相关的内容连在<br>一起的。文本文件中的域通常由空格或tab键分隔，也可以用其他的分隔符。<br>&nbsp;&nbsp;&nbsp; 格式为：<br>&nbsp;&nbsp;&nbsp; join [options] input_file1 input_file2<br>&nbsp;&nbsp;&nbsp; options内容：<br>&nbsp;&nbsp;&nbsp; an&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; n为数字，用来连接时从文件n中显示不匹配行。如-al显示第一个文件的不匹配行。<br>&nbsp;&nbsp;&nbsp; o n.m&nbsp;&nbsp;&nbsp; n为文件号，m为域号。如，1.3表示只显示文件1第三域。每个n.m组合中必须用都好分隔，如1.3,2.1。<br>&nbsp;&nbsp;&nbsp; j n m&nbsp;&nbsp;&nbsp; n为文件号，m为域号。使用其他域作连接域。<br>&nbsp;&nbsp;&nbsp; t&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 域分隔符。例如，指定冒号做域分隔符-t:。<br>&nbsp;&nbsp;&nbsp; 注意，这里的域从1开始算。<br>&nbsp;&nbsp;&nbsp; 下面进行测试。<br>&nbsp;&nbsp;&nbsp; 先准备两文档names.txt，内容为：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;cat&nbsp;names.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;M.Golls&nbsp;</span><span style="color: #000000;">12</span><span style="color: #000000;">&nbsp;HIdd&nbsp;Rd<br>&nbsp;&nbsp;&nbsp;&nbsp;P.Heller&nbsp;The&nbsp;Acre<br>&nbsp;&nbsp;&nbsp;&nbsp;P.Willey&nbsp;</span><span style="color: #000000;">132</span><span style="color: #000000;">&nbsp;The&nbsp;Grove<br>&nbsp;&nbsp;&nbsp;&nbsp;T.Norms&nbsp;</span><span style="color: #000000;">84</span><span style="color: #000000;">&nbsp;Connaught&nbsp;Rd<br>&nbsp;&nbsp;&nbsp;&nbsp;K.Fletch&nbsp;</span><span style="color: #000000;">12</span><span style="color: #000000;">&nbsp;Woodlea</span></div>
&nbsp;&nbsp;&nbsp; 文档town.txt：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;cat&nbsp;town.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;M.Golls&nbsp;Norwich&nbsp;NRD<br>&nbsp;&nbsp;&nbsp;&nbsp;P.Willey&nbsp;Galashiels&nbsp;GDD<br>&nbsp;&nbsp;&nbsp;&nbsp;T.Norms&nbsp;Brandon&nbsp;BSL<br>&nbsp;&nbsp;&nbsp;&nbsp;K.Fletch&nbsp;MIldenhall&nbsp;MAF</span></div>
&nbsp;&nbsp;&nbsp; <strong><em>a、先观察两个文件有相同内容的域0，连接两个文件：<br></em></strong>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;join&nbsp;names.txt&nbsp;town.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;M.Golls&nbsp;</span><span style="color: #000000;">12</span><span style="color: #000000;">&nbsp;HIdd&nbsp;Rd&nbsp;Norwich&nbsp;NRD<br>&nbsp;&nbsp;&nbsp;&nbsp;P.Willey&nbsp;</span><span style="color: #000000;">132</span><span style="color: #000000;">&nbsp;The&nbsp;Grove&nbsp;Galashiels&nbsp;GDD<br>&nbsp;&nbsp;&nbsp;&nbsp;T.Norms&nbsp;</span><span style="color: #000000;">84</span><span style="color: #000000;">&nbsp;Connaught&nbsp;Rd&nbsp;Brandon&nbsp;BSL<br>&nbsp;&nbsp;&nbsp;&nbsp;K.Fletch&nbsp;</span><span style="color: #000000;">12</span><span style="color: #000000;">&nbsp;Woodlea&nbsp;&nbsp;MIldenhall&nbsp;MAF</span></div>
<strong><em>&nbsp;&nbsp;&nbsp; b、选择性连接：<br></em></strong>&nbsp;&nbsp;&nbsp; 使用-o选项，例如使用1.1显示第一个文件第一个域，2.2显示第二个文件第二个域，记住用逗号隔开：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;join&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">o&nbsp;</span><span style="color: #000000;">1.1</span><span style="color: #000000;">,</span><span style="color: #000000;">2.2</span><span style="color: #000000;">&nbsp;names.txt&nbsp;town.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;M.Golls&nbsp;Norwich<br>&nbsp;&nbsp;&nbsp;&nbsp;P.Willey&nbsp;Galashiels<br>&nbsp;&nbsp;&nbsp;&nbsp;T.Norms&nbsp;Brandon<br>&nbsp;&nbsp;&nbsp;&nbsp;K.Fletch&nbsp;MIldenhall</span></div>
&nbsp;&nbsp;&nbsp;<strong><em> c、使用-jn m进行其他域进行连接，在这里要在连接的两个文件中找到作为连接键的域，命令为：<br></em></strong>&nbsp;&nbsp;&nbsp; join -jn m -jn m file1 file2<br>&nbsp;&nbsp;&nbsp; 例如：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;join&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">j1&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">j2&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;names.txt&nbsp;town.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;M.Golls&nbsp;</span><span style="color: #000000;">12</span><span style="color: #000000;">&nbsp;HIdd&nbsp;Rd&nbsp;Norwich&nbsp;NRD<br>&nbsp;&nbsp;&nbsp;&nbsp;P.Willey&nbsp;</span><span style="color: #000000;">132</span><span style="color: #000000;">&nbsp;The&nbsp;Grove&nbsp;Galashiels&nbsp;GDD<br>&nbsp;&nbsp;&nbsp;&nbsp;T.Norms&nbsp;</span><span style="color: #000000;">84</span><span style="color: #000000;">&nbsp;Connaught&nbsp;Rd&nbsp;Brandon&nbsp;BSL<br>&nbsp;&nbsp;&nbsp;&nbsp;K.Fletch&nbsp;</span><span style="color: #000000;">12</span><span style="color: #000000;">&nbsp;Woodlea&nbsp;&nbsp;MIldenhall&nbsp;MAF</span></div>
&nbsp;&nbsp;&nbsp; 上面这个是用文件1的域1和文件2的域1作为连接键。<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <strong style="color: red;">cut命令<br></strong>&nbsp;&nbsp;&nbsp; 作用：用来从标准输入或文本文件中剪切列或域。可以与粘贴命令一起使用。<br>&nbsp;&nbsp;&nbsp; 格式为：<br>&nbsp;&nbsp;&nbsp; cut [options] file1 file2<br>&nbsp;&nbsp;&nbsp; 介绍：<br>&nbsp;&nbsp;&nbsp; -c&nbsp;&nbsp;&nbsp; 指定剪切的字符数<br>&nbsp;&nbsp;&nbsp; -f&nbsp;&nbsp;&nbsp; 指定剪切域数&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; -d&nbsp;&nbsp;&nbsp; 指定与空格和tab键不同的域分隔符<br>&nbsp;&nbsp;&nbsp; -c的格式为：<br>&nbsp;&nbsp;&nbsp; -c1,5-7&nbsp;&nbsp;&nbsp; 剪切第1个字符，然后是第5到第7个字符<br>&nbsp;&nbsp;&nbsp; -c1-50&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 剪切前50个字符<br>&nbsp;&nbsp;&nbsp; -f的格式与-c的格式相同：<br>&nbsp;&nbsp;&nbsp; -f1,5&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 剪切第1域，第5域。<br>&nbsp;&nbsp;&nbsp; -f1,10-12&nbsp;&nbsp;&nbsp; 剪切第1域，第10到12域。<br>&nbsp;&nbsp;&nbsp; 下面测试一下：<br>&nbsp;&nbsp;&nbsp; 修改pers文件为：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;cat&nbsp;pers<br>&nbsp;&nbsp;&nbsp;&nbsp;P.Jones:Office&nbsp;Runner:ID897<br>&nbsp;&nbsp;&nbsp;&nbsp;S.Round:UNIX&nbsp;admin:ID666<br>&nbsp;&nbsp;&nbsp;&nbsp;L.Clip:Personal&nbsp;Chief:ID982</span></div>
&nbsp;&nbsp;&nbsp; 以下的内容都是以":"作为域分隔符。<br><strong><em>&nbsp;&nbsp;&nbsp; a、剪切指定域：<br></em></strong>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;cut&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">d:&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">f1,</span><span style="color: #000000;">3</span><span style="color: #000000;">&nbsp;pers<br>&nbsp;&nbsp;&nbsp;&nbsp;P.Jones:ID897<br>&nbsp;&nbsp;&nbsp;&nbsp;S.Round:ID666<br>&nbsp;&nbsp;&nbsp;&nbsp;L.Clip:ID982</span></div>
<strong><em>&nbsp;&nbsp;&nbsp; b、剪切指定字符数<br></em></strong>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;cut&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">c1</span><span style="color: #000000;">-</span><span style="color: #000000;">5</span><span style="color: #000000;">&nbsp;pers<br>&nbsp;&nbsp;&nbsp;&nbsp;P.Jon<br>&nbsp;&nbsp;&nbsp;&nbsp;S.Rou<br>&nbsp;&nbsp;&nbsp;&nbsp;L.Cli</span></div>
&nbsp;&nbsp;&nbsp; 可以发现，在剪切指定域的时候要指出域分隔符，而剪切指定字符时不用。<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <strong style="color: red;">paste用法：<br></strong>&nbsp;&nbsp;&nbsp; cut用来从文本文件或标准输出中抽取数据列或者域，然后再用paste可以将这些数据粘贴起来形成相关文件。粘贴两<br>个不同来源的数据时，首先需将其分类，并确保两个文件行数相同。<br>&nbsp;&nbsp;&nbsp; paste将按行将不同文件行信息放在一行。缺省情况下，paste连接时，用空格或tab键分隔新行中不同文本，除非指<br>定 -d选项，它将成为域分隔符。<br>&nbsp;&nbsp;&nbsp; 格式为：<br>&nbsp;&nbsp;&nbsp; paste -d -s file1 file2<br>&nbsp;&nbsp;&nbsp; 解释：<br>&nbsp;&nbsp;&nbsp; -d&nbsp;&nbsp;&nbsp; 指定不同于空格或tab键的域分隔符。<br>&nbsp;&nbsp;&nbsp; -s&nbsp;&nbsp;&nbsp; 将每个文件合并成行来粘贴。<br>&nbsp;&nbsp;&nbsp; 示例：<br>&nbsp;&nbsp;&nbsp; 创建两个文件pas1：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;cat&nbsp;pas1<br>&nbsp;&nbsp;&nbsp;&nbsp;ID897<br>&nbsp;&nbsp;&nbsp;&nbsp;ID666<br>&nbsp;&nbsp;&nbsp;&nbsp;ID982</span></div>
&nbsp;&nbsp;&nbsp; 和文件pas2：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;cat&nbsp;pas2<br>&nbsp;&nbsp;&nbsp;&nbsp;P.Jones<br>&nbsp;&nbsp;&nbsp;&nbsp;S.Round<br>&nbsp;&nbsp;&nbsp;&nbsp;L.Clip</span></div>
<strong><em>&nbsp;&nbsp;&nbsp; a、将两文件粘贴成两列：<br></em></strong>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;paste&nbsp;pas1&nbsp;pas2<br>&nbsp;&nbsp;&nbsp;&nbsp;ID897&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P.Jones<br>&nbsp;&nbsp;&nbsp;&nbsp;ID666&nbsp;&nbsp;&nbsp;S.Round<br>&nbsp;&nbsp;&nbsp;&nbsp;ID982&nbsp;&nbsp;&nbsp;L.Clip</span></div>
&nbsp;&nbsp;&nbsp; 注意，如上所示，默认用空格作为分隔域。还有就是pas1和pas2谁排前面就先粘贴谁，可以修改为：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;paste&nbsp;pas2&nbsp;pas1<br>&nbsp;&nbsp;&nbsp;&nbsp;P.Jones&nbsp;ID897<br>&nbsp;&nbsp;&nbsp;&nbsp;S.Round&nbsp;ID666<br>&nbsp;&nbsp;&nbsp;&nbsp;L.Clip&nbsp;&nbsp;ID982</span></div>
<em><strong>&nbsp;&nbsp;&nbsp; b、逐个文件粘贴成行，使用-s选项，如：<br></strong></em>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;paste&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">s&nbsp;pas1&nbsp;pas2<br>&nbsp;&nbsp;&nbsp;&nbsp;ID897&nbsp;&nbsp;&nbsp;ID666&nbsp;&nbsp;&nbsp;ID982<br>&nbsp;&nbsp;&nbsp;&nbsp;P.Jones&nbsp;S.Round&nbsp;L.Clip</span></div>
&nbsp;&nbsp;&nbsp; 命令结果的的一行为文件pas1的内容，第二行为文件pas2的内容。<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <strong style="color: red;">split命令<br></strong>&nbsp;&nbsp;&nbsp; 作用：将大文件分割成小文件。格式为：<br>&nbsp;&nbsp;&nbsp; split -output_file-size input-filename output-filename<br>&nbsp;&nbsp;&nbsp; 其中output_file-size是文本文件被分割的行数。<br>&nbsp;&nbsp;&nbsp; 例如：<br>&nbsp;&nbsp;&nbsp; 创建文件split1，内容为：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;cat&nbsp;split_1<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">&nbsp;line1<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">&nbsp;line2<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">&nbsp;line3<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">&nbsp;line4<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">&nbsp;line5<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">&nbsp;line6</span></div>
&nbsp;&nbsp;&nbsp; 现在按每个文件2行分割，命令为：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;split&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">2</span><span style="color: #000000;">&nbsp;split_1</span></div>
&nbsp;&nbsp;&nbsp; 然后查看文件，多了一下三个文件：xaa、xab、xac。<br>&nbsp;&nbsp;&nbsp; 可以查看内容，例如：<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;cat&nbsp;xaa<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">&nbsp;line1<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">&nbsp;line2</span></div>
&nbsp;&nbsp;&nbsp; 注意：默认以后分割出来的小文件的命名方式为x[aa]到x[zz]，x为文件名首字母，[aa]、[zz]为文件名剩余部分顺序<br>字符组合。 <br><br><img src ="http://www.cppblog.com/xingjiegaojue/aggbug/140505.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xingjiegaojue/" target="_blank">张纶</a> 2011-02-23 12:50 <a href="http://www.cppblog.com/xingjiegaojue/archive/2011/02/23/140505.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《LInux与Unix Shell编程指南》笔记之sed命令</title><link>http://www.cppblog.com/xingjiegaojue/archive/2011/02/21/140399.html</link><dc:creator>张纶</dc:creator><author>张纶</author><pubDate>Mon, 21 Feb 2011 11:44:00 GMT</pubDate><guid>http://www.cppblog.com/xingjiegaojue/archive/2011/02/21/140399.html</guid><wfw:comment>http://www.cppblog.com/xingjiegaojue/comments/140399.html</wfw:comment><comments>http://www.cppblog.com/xingjiegaojue/archive/2011/02/21/140399.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xingjiegaojue/comments/commentRss/140399.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xingjiegaojue/services/trackbacks/140399.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n...&nbsp;&nbsp;<a href='http://www.cppblog.com/xingjiegaojue/archive/2011/02/21/140399.html'>阅读全文</a><img src ="http://www.cppblog.com/xingjiegaojue/aggbug/140399.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xingjiegaojue/" target="_blank">张纶</a> 2011-02-21 19:44 <a href="http://www.cppblog.com/xingjiegaojue/archive/2011/02/21/140399.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《LInux与Unix Shell编程指南》笔记之grep家族</title><link>http://www.cppblog.com/xingjiegaojue/archive/2011/02/20/140331.html</link><dc:creator>张纶</dc:creator><author>张纶</author><pubDate>Sun, 20 Feb 2011 07:46:00 GMT</pubDate><guid>http://www.cppblog.com/xingjiegaojue/archive/2011/02/20/140331.html</guid><wfw:comment>http://www.cppblog.com/xingjiegaojue/comments/140331.html</wfw:comment><comments>http://www.cppblog.com/xingjiegaojue/archive/2011/02/20/140331.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xingjiegaojue/comments/commentRss/140331.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xingjiegaojue/services/trackbacks/140331.html</trackback:ping><description><![CDATA[<p style="FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="FONT-SIZE: 14pt">grep家族<br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.cppblog.com/Files/xingjiegaojue/008.PDF">点击打开本章pdf文档<br></a>&nbsp;&nbsp;&nbsp;grep允许对文本文件进行模式查找。如果找到匹配模式，grep打印包含模式到所有行。grep支持基本正则表达式，也支持扩展集。<br>&nbsp;&nbsp;&nbsp;&nbsp;先建立一个文本文件data.f供下面到测试用，其中用&lt;Tab&gt;来隔开，内容为：</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">48</span><span style="COLOR: #000000">&nbsp;Dec&nbsp;3BC1997&nbsp;LPSX&nbsp;</span><span style="COLOR: #000000">68.00</span><span style="COLOR: #000000">&nbsp;LVX2A&nbsp;</span><span style="COLOR: #000000">138</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">483</span><span style="COLOR: #000000">&nbsp;Sept&nbsp;5AP1996&nbsp;USP&nbsp;</span><span style="COLOR: #000000">65.00</span><span style="COLOR: #000000">&nbsp;LVX2C&nbsp;</span><span style="COLOR: #000000">189</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">47</span><span style="COLOR: #000000">&nbsp;Oct&nbsp;3ZL1998&nbsp;LPSX&nbsp;</span><span style="COLOR: #000000">43.00</span><span style="COLOR: #000000">&nbsp;KVM9D&nbsp;</span><span style="COLOR: #000000">512</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">219</span><span style="COLOR: #000000">&nbsp;dev&nbsp;2CC1999&nbsp;CAD&nbsp;</span><span style="COLOR: #000000">23.00</span><span style="COLOR: #000000">&nbsp;PLV2C&nbsp;</span><span style="COLOR: #000000">68</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">484</span><span style="COLOR: #000000">&nbsp;ncv&nbsp;7PL1996&nbsp;CAD&nbsp;</span><span style="COLOR: #000000">49.00</span><span style="COLOR: #000000">&nbsp;PLV2C&nbsp;</span><span style="COLOR: #000000">234</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">483</span><span style="COLOR: #000000">&nbsp;may&nbsp;5PA1998&nbsp;USP&nbsp;</span><span style="COLOR: #000000">37.00</span><span style="COLOR: #000000">&nbsp;KVM9D&nbsp;</span><span style="COLOR: #000000">644</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">216</span><span style="COLOR: #000000">&nbsp;sept&nbsp;3ZL1998&nbsp;USP&nbsp;</span><span style="COLOR: #000000">86.00</span><span style="COLOR: #000000">&nbsp;KVM9E&nbsp;</span><span style="COLOR: #000000">234</span></div>
<p style="FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;grep一般格式：<br>&nbsp;&nbsp;&nbsp;&nbsp;grep[选项]基本正则表达式[文件]<br>&nbsp;&nbsp;&nbsp;&nbsp;在调用变量或字符串时用双引号；在调用模式匹配时，用单引号，如：<br>&nbsp;&nbsp;&nbsp;&nbsp;查询字符串时使用双引号：</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;root@ubuntu:</span><span style="COLOR: #000000">~/</span><span style="COLOR: #000000">test#&nbsp;grep&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">48</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;data.f<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">48</span><span style="COLOR: #000000">&nbsp;Dec&nbsp;3BC1997&nbsp;LPSX&nbsp;</span><span style="COLOR: #000000">68.00</span><span style="COLOR: #000000">&nbsp;LVX2A&nbsp;</span><span style="COLOR: #000000">138</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">483</span><span style="COLOR: #000000">&nbsp;Sept&nbsp;5AP1996&nbsp;USP&nbsp;</span><span style="COLOR: #000000">65.00</span><span style="COLOR: #000000">&nbsp;LVX2C&nbsp;</span><span style="COLOR: #000000">189</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">484</span><span style="COLOR: #000000">&nbsp;ncv&nbsp;7PL1996&nbsp;CAD&nbsp;</span><span style="COLOR: #000000">49.00</span><span style="COLOR: #000000">&nbsp;PLV2C&nbsp;</span><span style="COLOR: #000000">234</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">483</span><span style="COLOR: #000000">&nbsp;may&nbsp;5PA1998&nbsp;USP&nbsp;</span><span style="COLOR: #000000">37.00</span><span style="COLOR: #000000">&nbsp;KVM9D&nbsp;</span><span style="COLOR: #000000">644</span></div>
<p style="FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;上面到在data.f中查找含有"48"到行。<br>&nbsp;&nbsp;&nbsp;&nbsp;使用正则表达式来查找，使用单引号：<br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;root@ubuntu:</span><span style="COLOR: #000000">~/</span><span style="COLOR: #000000">test#&nbsp;grep&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">48[34]</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&nbsp;data.f<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">483</span><span style="COLOR: #000000">&nbsp;Sept&nbsp;5AP1996&nbsp;USP&nbsp;</span><span style="COLOR: #000000">65.00</span><span style="COLOR: #000000">&nbsp;LVX2C&nbsp;</span><span style="COLOR: #000000">189</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">484</span><span style="COLOR: #000000">&nbsp;ncv&nbsp;7PL1996&nbsp;CAD&nbsp;</span><span style="COLOR: #000000">49.00</span><span style="COLOR: #000000">&nbsp;PLV2C&nbsp;</span><span style="COLOR: #000000">234</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">483</span><span style="COLOR: #000000">&nbsp;may&nbsp;5PA1998&nbsp;USP&nbsp;</span><span style="COLOR: #000000">37.00</span><span style="COLOR: #000000">&nbsp;KVM9D&nbsp;</span><span style="COLOR: #000000">644</span></div>
<p style="FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;上面查找含有"483"和"484"的行。</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;root@ubuntu:</span><span style="COLOR: #000000">~/</span><span style="COLOR: #000000">test#&nbsp;grep&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">^[^48]</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&nbsp;data.f<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">219</span><span style="COLOR: #000000">&nbsp;dev&nbsp;2CC1999&nbsp;CAD&nbsp;</span><span style="COLOR: #000000">23.00</span><span style="COLOR: #000000">&nbsp;PLV2C&nbsp;</span><span style="COLOR: #000000">68</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">216</span><span style="COLOR: #000000">&nbsp;sept&nbsp;3ZL1998&nbsp;USP&nbsp;</span><span style="COLOR: #000000">86.00</span><span style="COLOR: #000000">&nbsp;KVM9E&nbsp;</span><span style="COLOR: #000000">234</span></div>
<p style="FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;上面的查找行首不是48到行。<br>&nbsp;&nbsp;&nbsp;&nbsp;其他的可以参照正则表达式来修改查找的内容。</p>
<p style="FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;但我使用双引号试试也可以，暂时不知道为什么，待考究:</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp; root@ubuntu:</span><span style="COLOR: #000000">~/</span><span style="COLOR: #000000">test#&nbsp;grep&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">48[34]</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;data.f<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">483</span><span style="COLOR: #000000">&nbsp;SEPT&nbsp;5AP1996&nbsp;USP&nbsp;</span><span style="COLOR: #000000">65.00</span><span style="COLOR: #000000">&nbsp;LVX2C&nbsp;</span><span style="COLOR: #000000">189</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">484</span><span style="COLOR: #000000">&nbsp;ncv&nbsp;7PL1996&nbsp;CAD&nbsp;</span><span style="COLOR: #000000">49.00</span><span style="COLOR: #000000">&nbsp;PLV2C&nbsp;</span><span style="COLOR: #000000">234</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">483</span><span style="COLOR: #000000">&nbsp;may&nbsp;5PA1998&nbsp;USP&nbsp;</span><span style="COLOR: #000000">37.00</span><span style="COLOR: #000000">&nbsp;KVM9D&nbsp;</span><span style="COLOR: #000000">644</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;root@ubuntu:</span><span style="COLOR: #000000">~/</span><span style="COLOR: #000000">test#&nbsp;grep&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">^[^48]</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;data.f<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">219</span><span style="COLOR: #000000">&nbsp;dev&nbsp;2CC1999&nbsp;CAD&nbsp;</span><span style="COLOR: #000000">23.00</span><span style="COLOR: #000000">&nbsp;PLV2C&nbsp;</span><span style="COLOR: #000000">68</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">216</span><span style="COLOR: #000000">&nbsp;sept&nbsp;3ZL1998&nbsp;USP&nbsp;</span><span style="COLOR: #000000">86.00</span><span style="COLOR: #000000">&nbsp;KVM9E&nbsp;</span><span style="COLOR: #000000">234</span><span style="COLOR: #000000">&nbsp;</span></div>
<div style="FONT-SIZE: 10pt">&nbsp; &nbsp;下面时grep到常用选项：<br>&nbsp;&nbsp;&nbsp;&nbsp;-c&nbsp;只输出匹配行到计数<br>&nbsp;&nbsp;&nbsp;&nbsp;-i&nbsp;不区分大小写<br>&nbsp;&nbsp;&nbsp;&nbsp;-h&nbsp;查询多文件时不显示文件名<br>&nbsp;&nbsp;&nbsp;&nbsp;-l&nbsp;查询多文件时只输出包含匹配字符到文件名<br>&nbsp;&nbsp;&nbsp;&nbsp;-n&nbsp;显示匹配行及行号<br>&nbsp;&nbsp;&nbsp;&nbsp;-s&nbsp;不显示不存在或无匹配文本到错误信息<br>&nbsp;&nbsp;&nbsp;&nbsp;-v&nbsp;显示不包含匹配文本到所有行<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;pdf文档中含有易懂的例子。</div>
<img src ="http://www.cppblog.com/xingjiegaojue/aggbug/140331.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xingjiegaojue/" target="_blank">张纶</a> 2011-02-20 15:46 <a href="http://www.cppblog.com/xingjiegaojue/archive/2011/02/20/140331.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《LInux与Unix Shell编程指南》笔记之命令执行顺序</title><link>http://www.cppblog.com/xingjiegaojue/archive/2011/02/20/140323.html</link><dc:creator>张纶</dc:creator><author>张纶</author><pubDate>Sun, 20 Feb 2011 03:17:00 GMT</pubDate><guid>http://www.cppblog.com/xingjiegaojue/archive/2011/02/20/140323.html</guid><wfw:comment>http://www.cppblog.com/xingjiegaojue/comments/140323.html</wfw:comment><comments>http://www.cppblog.com/xingjiegaojue/archive/2011/02/20/140323.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xingjiegaojue/comments/commentRss/140323.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xingjiegaojue/services/trackbacks/140323.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="FONT-SIZE: 14pt">&nbsp;命令执行顺序<br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.cppblog.com/Files/xingjiegaojue/006.PDF">点击打开本章pdf文档</a><br>&amp;&amp;和||可以完成这样的任务，相应的命令可以为系统命令和shell脚本。<br>&nbsp;&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp; <strong>使用&amp;&amp;<br></strong>&nbsp;&nbsp;&nbsp; 格式为：<br>&nbsp;&nbsp;&nbsp; 命令1 &amp;&amp; 命令2<br>&nbsp;&nbsp;&nbsp; 在命令1不出现错误即为真的情况下，命令2才能执行，比如：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test1]#&nbsp;cp&nbsp;myfile&nbsp;.</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">bin</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">etc</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">myfile&nbsp;&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;echo&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">if&nbsp;you&nbsp;are&nbsp;seeing&nbsp;this&nbsp;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;then&nbsp;cp&nbsp;was&nbsp;OK</span><span style="COLOR: #000000">"</span></div>
&nbsp;&nbsp;&nbsp; cp: 无法创建一般文件&#8220;./bin/etc/myfile&#8221;: 没有那个文件或目录<br>&nbsp;&nbsp;&nbsp; 因为当前目录为test1，所以拷贝失败。下面在当前目录下拷贝，成功。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test1]#&nbsp;cp&nbsp;myfile&nbsp;myfile1&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;echo&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">if&nbsp;you&nbsp;are&nbsp;seeing&nbsp;this&nbsp;then&nbsp;cp&nbsp;was&nbsp;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;OK</span><span style="COLOR: #000000">"<br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;you&nbsp;are&nbsp;seeing&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">&nbsp;then&nbsp;cp&nbsp;ws&nbsp;OK</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; <strong>使用||<br></strong>&nbsp;&nbsp;&nbsp; 格式为：<br>&nbsp;&nbsp;&nbsp; 命令1 || 命令2<br>&nbsp;&nbsp;&nbsp; 说明：如果||左边的命令1未执行成功，那么执行命令2；如果命令1执行成功，那么命令2被忽略。也就是说两个命令中只<br>有一个被执行，如果两个命令都正确，则只执行命令1。比如：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test1]#&nbsp;ls&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">soft.txt&nbsp;&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">hard.txt&nbsp;&nbsp;f_desc&nbsp;&nbsp;file1&nbsp;&nbsp;myfile&nbsp;&nbsp;myfile1&nbsp;&nbsp;stock.txt&nbsp;&nbsp;stork.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test1]#&nbsp;rm&nbsp;myfile2&nbsp;</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">&nbsp;echo&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">rm&nbsp;error!</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;rm&nbsp;myfile2&nbsp;</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">&nbsp;echo&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">rm&nbsp;error</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;rm:&nbsp;lstat&nbsp;&#8220;myfile2&#8221;&nbsp;失败:&nbsp;没有那个文件或目录<br>&nbsp;&nbsp;&nbsp;&nbsp;rm&nbsp;error<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test1]#&nbsp;rm&nbsp;myfile1&nbsp;</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">&nbsp;echo&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">rm&nbsp;ok</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;rm：是否删除&nbsp;一般文件&nbsp;&#8220;myfile1&#8221;</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">&nbsp;y<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test1]#&nbsp;</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; <strong>使用()和{}将命令结合在一起<br></strong>&nbsp;&nbsp;&nbsp; 在当前shell中执行一组命令，可以用命令分隔符;隔开每一个命令，并把所有命令用()括起来。一般形式为：<br>&nbsp;&nbsp;&nbsp; (命令1;命令2;...)<br>&nbsp;&nbsp;&nbsp; 比如：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test1]#&nbsp;cp&nbsp;myfile&nbsp;myfile1&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;(echo&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">OK</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;echo&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">OK,again</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;OK<br>&nbsp;&nbsp;&nbsp;&nbsp;OK,again&nbsp;</span></div>
<img src ="http://www.cppblog.com/xingjiegaojue/aggbug/140323.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xingjiegaojue/" target="_blank">张纶</a> 2011-02-20 11:17 <a href="http://www.cppblog.com/xingjiegaojue/archive/2011/02/20/140323.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《LInux与Unix Shell编程指南》笔记之Shell输入与输出</title><link>http://www.cppblog.com/xingjiegaojue/archive/2011/02/20/140322.html</link><dc:creator>张纶</dc:creator><author>张纶</author><pubDate>Sun, 20 Feb 2011 03:16:00 GMT</pubDate><guid>http://www.cppblog.com/xingjiegaojue/archive/2011/02/20/140322.html</guid><wfw:comment>http://www.cppblog.com/xingjiegaojue/comments/140322.html</wfw:comment><comments>http://www.cppblog.com/xingjiegaojue/archive/2011/02/20/140322.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xingjiegaojue/comments/commentRss/140322.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xingjiegaojue/services/trackbacks/140322.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Shell输入与输出<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.cppblog.com/Files/xingjiegaojue/005.PDF">点击打开本章《LInux与Unix Shell变成指南》pdf文档</a><br><strong>cat命令<br></strong>&nbsp;&nbsp; &nbsp;作用：可以显示文件内容，创建文件和显示控制字符。<br>&nbsp;&nbsp; &nbsp;格式：<br>&nbsp;&nbsp; &nbsp;cat [ options ] filename1 filename2 ...<br>&nbsp;&nbsp; &nbsp;最常用的选项为：<br>&nbsp;&nbsp; &nbsp;-v&nbsp;&nbsp; &nbsp;显示控制字符<br>&nbsp;&nbsp; &nbsp;例如：<br>&nbsp;&nbsp; &nbsp;如果显示名为myfile文件<br>&nbsp;&nbsp; &nbsp;cat myfile<br>&nbsp;&nbsp; &nbsp;可能会出现内容太多的问题，原因是cat命令不会在文件分页符处停下来，即它会显示完整个文件。<br>&nbsp;&nbsp; &nbsp;解决方法：可以使用more命令或把cat命令的输出通过管道传递到另外一个具有分页功能的命令，如：<br>&nbsp;&nbsp; &nbsp;cat myfile | more 或<br>&nbsp;&nbsp; &nbsp;cat myfile | pg<br>&nbsp;&nbsp; &nbsp;如果显示myfile1、myfile2、myfile3的内容，为：<br>&nbsp;&nbsp; &nbsp;cat myfile1 myfile2 myfile3<br>&nbsp;&nbsp; &nbsp;如果希望创建一个新文件bigfile，里面包含myfile1、myfile2、myfile3文件的内容，则：<br>&nbsp;&nbsp; &nbsp;cat myfile1 myfile2 myfile3 &gt; bigfile<br>&nbsp;&nbsp; &nbsp;如果希望创建一个新文件myfile，通过标准输入－键盘，输入完毕后按&lt;CTRL -D&gt;结束输入，相当于一个简单的<br>编辑器。如：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;cat&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;myfile<br>&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;</span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000">&nbsp;great.<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;cat&nbsp;myfile<br>&nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;</span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000">&nbsp;great.<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; <strong>t命令<br></strong>&nbsp;&nbsp;&nbsp; 作用：把输出的一个副本输送到标准输出，另一个副本拷贝到相应的文件中。<br>&nbsp;&nbsp;&nbsp; 格式为：<br>&nbsp;&nbsp;&nbsp; tee -a files<br>&nbsp;&nbsp;&nbsp; -a表示追加到文件尾。<br>&nbsp;&nbsp;&nbsp; 举例：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">]#&nbsp;who<br>&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pts</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">2011</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">02</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">20</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">08</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">22</span><span style="COLOR: #000000">&nbsp;(:</span><span style="COLOR: #000000">0.0</span><span style="COLOR: #000000">)</span></div>
&nbsp;&nbsp;&nbsp; 把上面的内容存到who.out中：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">]#&nbsp;who&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">&nbsp;tee&nbsp;who.</span><span style="COLOR: #0000ff">out</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pts</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">2011</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">02</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">20</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">08</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">22</span><span style="COLOR: #000000">&nbsp;(:</span><span style="COLOR: #000000">0.0</span><span style="COLOR: #000000">)</span></div>
&nbsp;&nbsp;&nbsp; 查看结果：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">]#&nbsp;cat&nbsp;who.</span><span style="COLOR: #0000ff">out</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pts</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">2011</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">02</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">20</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">08</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">22</span><span style="COLOR: #000000">&nbsp;(:</span><span style="COLOR: #000000">0.0</span><span style="COLOR: #000000">)</span></div>
&nbsp;&nbsp;&nbsp; 追加举例：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">]#&nbsp;ls&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">l&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">&nbsp;tee&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">a&nbsp;who.</span><span style="COLOR: #0000ff">out</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;总计&nbsp;</span><span style="COLOR: #000000">242</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;drwxr</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">xr</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">x&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;root&nbsp;root&nbsp;&nbsp;</span><span style="COLOR: #000000">4096</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">02</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">18</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">13</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">07</span><span style="COLOR: #000000">&nbsp;bin<br>&nbsp;&nbsp;&nbsp;&nbsp;drwxr</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">xr</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">x&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">&nbsp;root&nbsp;root&nbsp;&nbsp;</span><span style="COLOR: #000000">1024</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">02</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">14</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">19</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">24</span><span style="COLOR: #000000">&nbsp;boot<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">]#&nbsp;cat&nbsp;who.</span><span style="COLOR: #0000ff">out</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pts</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">2011</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">02</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">20</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">08</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">22</span><span style="COLOR: #000000">&nbsp;(:</span><span style="COLOR: #000000">0.0</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp; 总计 242<br>&nbsp;&nbsp;&nbsp; drwxr-xr-x&nbsp;&nbsp; 2 root root&nbsp; 4096 02-18 13:07 bin<br>&nbsp;&nbsp;&nbsp; drwxr-xr-x&nbsp;&nbsp; 4 root root&nbsp; 1024 02-14 19:24 boot</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; <strong>标准输入与输出<br></strong>&nbsp;&nbsp;&nbsp; 当我们在shell中执行命令的时候，每个进程都和三个打开的文件相联系，并使用文件描述符来引用这些文件。<br>&nbsp;&nbsp;&nbsp; －－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 文件&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 文件描述符<br>&nbsp;&nbsp;&nbsp; －－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br>&nbsp;&nbsp;&nbsp; 输入文件－－标准输入&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 输出文件－－标准输出&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 1<br>&nbsp;&nbsp;&nbsp; 错误输出文件－－标准错误&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2<br>&nbsp;&nbsp;&nbsp; －－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br>&nbsp;&nbsp;&nbsp; 系统中实际上有12个文件描述符，0、1、2如上所示，可以任意使用文件描述符3到9。<br>&nbsp;&nbsp;&nbsp; 下面是0、1、2的解释：<br>&nbsp;&nbsp;&nbsp; 0（标准输入），指命令的输入，缺省是键盘，也可以是文件或其他命令输入。<br>&nbsp;&nbsp;&nbsp; 1（标准输出），是命令的输出，缺省是屏幕，也可以是文件。<br>&nbsp;&nbsp;&nbsp; 2（标准错误），是命令错误的输出，缺省是屏幕，也可以是文件。<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <strong>文件重定向<br></strong>&nbsp;&nbsp;&nbsp; 通过文件重定向，可以指定命令的标准输入、输出和错误。在对标准错误进行重定向时，必须使用文加描述符，而在<br>标准输出和输入时，可以不使用文件描述符。<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 常用文件重定向命令<br>&nbsp;&nbsp;&nbsp; －－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; command &gt; filename&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;把标准输出重定向到一个新文件中&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; command &gt;&gt; filename&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;把标准输出重定向到一个文件中 ( 追加 )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; command 1 &gt; fielname&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 把标准输出重定向到一个文件中&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; command &gt; filename 2&gt;&amp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;把标准输出和标准错误一起重定向到一个文件中&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; command 2 &gt; filename&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 把标准错误重定向到一个文件中&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; command 2 &gt;&gt; filename&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 把标准输出重定向到一个文件中 ( 追加 )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; command &gt;&gt; filename 2&gt;&amp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 把标准输出和标准错误一起重定向到一个文件中 (加 )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; command &lt; filename &gt;filename2&nbsp;&nbsp;command命令以filename文件作为标准输入，以filename2文<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;件作为标准输出&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; command &lt; filename&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; command 命令以 filename 文件作为标准输入&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; command &lt;&lt; delimiter&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;从标准输入中读入，直至遇到 delimiter 分界符&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; command &lt;&amp;m&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 把文件描述符 m 作为标准输入&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; command &gt;&amp;m&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 把标准输出重定向到文件描述符 m 中&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; command &lt;&amp;-&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 关闭标准输入<br>&nbsp;&nbsp;&nbsp; －－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－<br>&nbsp;&nbsp;&nbsp; 举例：<br>&nbsp;&nbsp;&nbsp; <em style="COLOR: red">a、重定向标准输出：<br></em>&nbsp;&nbsp;&nbsp; 可以不使用文件描述符。<br>&nbsp;&nbsp;&nbsp; 如：<br>&nbsp;&nbsp;&nbsp; 先查看当前目录下有什么文件：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test2]#&nbsp;ls<br>&nbsp;&nbsp;&nbsp;&nbsp;file1&nbsp;&nbsp;file2</span></div>
&nbsp;&nbsp;&nbsp; 把上面的输出重定向到ls.out中，并输出查看：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test2]#&nbsp;ls&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;ls.</span><span style="COLOR: #0000ff">out</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test2]#&nbsp;cat&nbsp;ls.</span><span style="COLOR: #0000ff">out<br><font color=#000000>&nbsp;&nbsp;&nbsp; file1<br>&nbsp;&nbsp;&nbsp; file2<br>&nbsp;&nbsp;&nbsp; ls.out</font></span></div>
&nbsp;&nbsp;&nbsp; 上面的ls.out刚创建，所以在前面ls命令中没有这个文件。上面的事例可以等同于：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test2]#&nbsp;ls&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">ls.</span><span style="COLOR: #0000ff">out</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test2]#&nbsp;cat&nbsp;ls.</span><span style="COLOR: #0000ff">out</span></div>
&nbsp;&nbsp;&nbsp; 下面是追加的命令：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test2]#&nbsp;ls&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">ls.</span><span style="COLOR: #0000ff">out</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test2]#&nbsp;cat&nbsp;ls.</span><span style="COLOR: #0000ff">out</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;file1<br>&nbsp;&nbsp;&nbsp;&nbsp;file2<br>&nbsp;&nbsp;&nbsp;&nbsp;ls.</span><span style="COLOR: #0000ff">out</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;file1<br>&nbsp;&nbsp;&nbsp;&nbsp;file2<br>&nbsp;&nbsp;&nbsp;&nbsp;ls.</span><span style="COLOR: #0000ff">out</span></div>
&nbsp;&nbsp;&nbsp;<em> <span style="COLOR: red">b、重定向标准输入：<br></span></em>&nbsp;&nbsp;&nbsp; 例如：<br>&nbsp;&nbsp;&nbsp; 先查看file1内容：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test1]#&nbsp;cat&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;file1<br>&nbsp;&nbsp;&nbsp;&nbsp;you&nbsp;can&nbsp;</span><span style="COLOR: #0000ff">do</span><span style="COLOR: #000000">&nbsp;it</span><span style="COLOR: #000000">!</span></div>
&nbsp;&nbsp;&nbsp; 然后把file1作为mail的标准输入：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test1]#&nbsp;mail&nbsp;root&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;file1</span></div>
&nbsp;&nbsp;&nbsp; 现在可以查看/var/spool/mail/root的内容看是否正确。<br>&nbsp;&nbsp;&nbsp; 上面的命令等同于：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test1]#&nbsp;mail&nbsp;root&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">file1</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; <em style="COLOR: red">command &lt;&lt; delimiter<br></em>&nbsp;&nbsp;&nbsp; 功能：shell将分界符delimiter之后直至下一个同样的分界符之前的所有内容都作为输入，遇到下一个分界符，<br>shell就知道输入结束了。比如用FINISH：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test1]#&nbsp;cat&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;file1&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">FINISH<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;The&nbsp;user&nbsp;name&nbsp;</span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000">&nbsp;$LOGNAME<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;bye<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;FINISH<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test1]#&nbsp;cat&nbsp;file1<br>&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;user&nbsp;name&nbsp;</span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000">&nbsp;root<br>&nbsp;&nbsp;&nbsp;&nbsp;bye</span></div>
&nbsp;&nbsp;&nbsp; <em style="COLOR: red">c、重定向标准错误：<br></em>&nbsp;&nbsp;&nbsp; 例如：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test1]#&nbsp;grep&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ok</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;nofile<br>&nbsp;&nbsp;&nbsp;&nbsp;grep:&nbsp;nofile:&nbsp;没有那个文件或目录</span></div>
&nbsp;&nbsp;&nbsp; 现在把上面的错误重定向到myfile文件中，而且在屏幕中不回显。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test1]#&nbsp;grep&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ok</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;nofile&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">myfile</span></div>
&nbsp;&nbsp;&nbsp; 查看myfile内容<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test1]#&nbsp;cat&nbsp;myfile<br>&nbsp;&nbsp;&nbsp;&nbsp;grep:&nbsp;nofile:&nbsp;没有那个文件或目录</span></div>
&nbsp;&nbsp;&nbsp; 上面的例子一般情况下都使用"&gt;&gt;"符号来作为追加内容，文件内之前的内容就不会被覆盖。<br>&nbsp;&nbsp;&nbsp; <em style="COLOR: red">d、结合使用标准输出和标准错误：<br></em>&nbsp;&nbsp;&nbsp; 指将输出重定向到一个文件中，然后把标准错误重定向到另一个文件中，如：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test1]#&nbsp;cat&nbsp;file1<br>&nbsp;&nbsp;&nbsp;&nbsp;just&nbsp;</span><span style="COLOR: #0000ff">do</span><span style="COLOR: #000000">&nbsp;it</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test1]#&nbsp;cat&nbsp;myfile<br>&nbsp;&nbsp;&nbsp; [root@localhost test1]# cat file1 nofile 1&gt;myfile 2&gt;myfile.err<br>&nbsp;&nbsp;&nbsp; [root@localhost test1]# cat myfile.err<br>&nbsp;&nbsp;&nbsp; cat: nofile: 没有那个文件或目录<br>&nbsp;&nbsp;&nbsp; [root@localhost test1]# cat myfile<br>&nbsp;&nbsp;&nbsp; just do it!</span></div>
&nbsp;&nbsp;&nbsp;<span style="COLOR: red"> </span><em><span style="COLOR: red">e、合并标准输出和标准错误：<br></span></em>&nbsp;&nbsp;&nbsp; 指把输出的内容和错误的内容都重定向到同一个文件中，如：
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test1]#&nbsp;cat&nbsp;file1&nbsp;nofile&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;myfile&nbsp;&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&gt;&amp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test1]#&nbsp;cat&nbsp;myfile<br>&nbsp;&nbsp;&nbsp;&nbsp;just&nbsp;</span><span style="COLOR: #0000ff">do</span><span style="COLOR: #000000">&nbsp;it</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;cat:&nbsp;nofile:&nbsp;没有那个文件或目录&nbsp;</span></div>
<img src ="http://www.cppblog.com/xingjiegaojue/aggbug/140322.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xingjiegaojue/" target="_blank">张纶</a> 2011-02-20 11:16 <a href="http://www.cppblog.com/xingjiegaojue/archive/2011/02/20/140322.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《LInux与Unix Shell编程指南》笔记之正则表达式</title><link>http://www.cppblog.com/xingjiegaojue/archive/2011/02/18/140250.html</link><dc:creator>张纶</dc:creator><author>张纶</author><pubDate>Fri, 18 Feb 2011 02:46:00 GMT</pubDate><guid>http://www.cppblog.com/xingjiegaojue/archive/2011/02/18/140250.html</guid><wfw:comment>http://www.cppblog.com/xingjiegaojue/comments/140250.html</wfw:comment><comments>http://www.cppblog.com/xingjiegaojue/archive/2011/02/18/140250.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xingjiegaojue/comments/commentRss/140250.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xingjiegaojue/services/trackbacks/140250.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; <span style="FONT-SIZE: 14pt">正则表达式<br></span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <a href="http://www.cppblog.com/Files/xingjiegaojue/007.PDF"><span style="FONT-SIZE: 10pt">点击此处打开本章《LInux与Unix Shell编程指南》pdf文档 </span></a><br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 基本元字符集及其含义<br>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; ^&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;只匹配行首<br>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; $&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;只只匹配行尾<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一个单字符后紧跟 * ，匹配 0个或多个此单字符<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; []&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 匹配[ ] 内字符。可以是一个单字符，也可以是字符序列。可以使用 -<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;表示 [] 内字符序列范围，如用 [1-5] 代替 [12345]<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; \&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用来屏蔽一个元字符的特殊含义。因为有时在 s h e l l 中一些元字符有<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;特殊含义。 \可以使其失去应有意义<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; .&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;匹配任意单字符<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; pattern\{n\}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 用来匹配前面 pattern 出现次数。 n 为次数<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; pattern\{n， \}m &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;含义同上，但次数最少为 n<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; pattern\{n， m\ &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; 含义同上，但 pattern 出现次数在 n 与 m之间<br>&nbsp;&nbsp; &nbsp;<br>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 特殊例子：<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 匹配所有空行，执行:<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ^$<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 解释：匹配行首，又匹配行尾，中间没有任何模式，因此为空行。<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 只返回包含一个字符的行：<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ^.$<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 解释：在行首与行尾之间有一个模式，代表任意单字符。 <br><br><br>
<img src ="http://www.cppblog.com/xingjiegaojue/aggbug/140250.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xingjiegaojue/" target="_blank">张纶</a> 2011-02-18 10:46 <a href="http://www.cppblog.com/xingjiegaojue/archive/2011/02/18/140250.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《LInux与Unix Shell编程指南》笔记之文件名置换</title><link>http://www.cppblog.com/xingjiegaojue/archive/2011/02/18/140242.html</link><dc:creator>张纶</dc:creator><author>张纶</author><pubDate>Fri, 18 Feb 2011 00:32:00 GMT</pubDate><guid>http://www.cppblog.com/xingjiegaojue/archive/2011/02/18/140242.html</guid><wfw:comment>http://www.cppblog.com/xingjiegaojue/comments/140242.html</wfw:comment><comments>http://www.cppblog.com/xingjiegaojue/archive/2011/02/18/140242.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xingjiegaojue/comments/commentRss/140242.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xingjiegaojue/services/trackbacks/140242.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="FONT-SIZE: 18pt">文件名置换</span><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;<span style="FONT-SIZE: 12pt">&nbsp; <a href="http://www.cppblog.com/Files/xingjiegaojue/004.PDF">点击此处打开《LInux与Unix Shell编程指南》本章pdf文档</a><br>&nbsp;</span>特殊字符：<br>&nbsp;&nbsp; &nbsp;*&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;匹配文件名中的任何字符串，包括空字符串。<br>&nbsp;&nbsp; &nbsp;?&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;匹配文件名中的任何单个字符。<br>&nbsp;&nbsp; &nbsp;[..]&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;匹配[]中所包含的任何字符<br>&nbsp;&nbsp; &nbsp;[!..]&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;匹配[]中非感叹号!之后的字符。<br>&nbsp;&nbsp; &nbsp;注意：要跟正则表达式去分开，上面这四个字符是针对文件名的含义，而正则表达式是针对文件里面的内容，常跟grep<br>等命令搭配使用。<br>&nbsp;&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp; 使用*<br>&nbsp;&nbsp;&nbsp; 使用星号*可以匹配文件名中的任何字符串。例如：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;ls&nbsp;a</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;append.sed&nbsp;&nbsp;atlist&nbsp;&nbsp;at_test2&nbsp;&nbsp;at_test.sh</span></div>
&nbsp;&nbsp;&nbsp; 表示以a开头，后面可以跟随任何字符串，包括空字符串。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;ls&nbsp;s</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">e<br>&nbsp;&nbsp;&nbsp;&nbsp;sample_one&nbsp;&nbsp;sample_three</span></div>
&nbsp;&nbsp;&nbsp; 表示以s开头，e结尾，中间为任意字符串或空字符串的文件名。<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 使用?<br>&nbsp;&nbsp;&nbsp; 例如：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;ls&nbsp;</span><span style="COLOR: #000000">??</span><span style="COLOR: #000000">di</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;ifdirec2&nbsp;&nbsp;vedio.txt</span></div>
&nbsp;&nbsp;&nbsp; 表示前面为任意字符而后面两个字符为d,i，在后面为任意字符串的文件名。<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 使用[..]、[!..]<br>&nbsp;&nbsp;&nbsp; 例如：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;ls&nbsp;[sv]</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;sample_one&nbsp;&nbsp;&nbsp;sample_three&nbsp;&nbsp;sedlist&nbsp;&nbsp;&nbsp;vartest<br>&nbsp;&nbsp;&nbsp;&nbsp;sample_one</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">&nbsp;&nbsp;sample_two&nbsp;&nbsp;&nbsp;&nbsp;sedlist</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">&nbsp;&nbsp;vedio.txt</span></div>
&nbsp;&nbsp;&nbsp; 表示头字符为s或者v，其余为任意字符串的文件名。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;ls&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]<br>&nbsp;&nbsp;&nbsp;&nbsp;at_test2&nbsp;&nbsp;ifdirec2</span></div>
&nbsp;&nbsp;&nbsp; 表示最后一个字符为数字的文件名。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;ls&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">]<br>&nbsp;&nbsp;&nbsp;&nbsp;append.sed&nbsp;&nbsp;e&nbsp;are&nbsp;no&nbsp;longer&nbsp;</span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;two&nbsp;&nbsp;ifparam&nbsp;&nbsp;&nbsp;&nbsp;oops.txt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sample_one</span><span style="COLOR: #000000">~</span></div>
&nbsp;&nbsp;&nbsp; 表示最后一个字符不是数字的文件名。 <br><br>
<img src ="http://www.cppblog.com/xingjiegaojue/aggbug/140242.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xingjiegaojue/" target="_blank">张纶</a> 2011-02-18 08:32 <a href="http://www.cppblog.com/xingjiegaojue/archive/2011/02/18/140242.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《LInux与Unix Shell编程指南》笔记之后台执行命令</title><link>http://www.cppblog.com/xingjiegaojue/archive/2011/02/17/140238.html</link><dc:creator>张纶</dc:creator><author>张纶</author><pubDate>Thu, 17 Feb 2011 14:29:00 GMT</pubDate><guid>http://www.cppblog.com/xingjiegaojue/archive/2011/02/17/140238.html</guid><wfw:comment>http://www.cppblog.com/xingjiegaojue/comments/140238.html</wfw:comment><comments>http://www.cppblog.com/xingjiegaojue/archive/2011/02/17/140238.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xingjiegaojue/comments/commentRss/140238.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xingjiegaojue/services/trackbacks/140238.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="FONT-SIZE: 14pt">后台执行命令<br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a style="FONT-SIZE: 10pt" href="http://www.cppblog.com/Files/xingjiegaojue/003.PDF">&nbsp;</a><a href="http://www.cppblog.com/Files/xingjiegaojue/003.PDF"><span style="FONT-SIZE: 10pt">点击此处打开《Linux与Unix Shell编程指南》本章pdf文档<br></span></a><strong>需要说明补充的地方：<br></strong>&nbsp;&nbsp;&nbsp;a、&nbsp;&nbsp;&nbsp;在crontab的内容中使用绝对路径；<br>&nbsp;&nbsp;&nbsp;b、&nbsp;&nbsp;&nbsp;默认情况下使用"crontab －e"命令时使用 vi编辑器，但也可以手动设定。由于我在redhat enterprise 5系<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;统下，所以编辑$HOME目录下的.bash_profile而非pdf文档上的.profile文件。查找该文件的命令为：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;find ~ -name ".bash_profile"，编辑它的命令为：vi .bash_profile，然后添加：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EDITOR=vi; export EDITOR；<br>&nbsp;&nbsp;&nbsp;c、&nbsp;&nbsp;&nbsp;创建一个名为&lt;user&gt;cron的文件，其中&lt;user&gt;为用户名，如，rootcron，在里面添加crontab内容，然后保存；<br>&nbsp;&nbsp;&nbsp;d、&nbsp;&nbsp;&nbsp;提交，命令为：crontab rootcron；<br>&nbsp;&nbsp;&nbsp;e、&nbsp;&nbsp;&nbsp;如果要修改rootcron内容，可以采用两种方法：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1、&nbsp;&nbsp;&nbsp;用gedit打开rootcron并修改保存，然后用命令"crontab rootcron"重新提交，则rootcron内容更新；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2、&nbsp;&nbsp;&nbsp;直接用命令"crontab -e"然后修改保存然后用命令"crontab -l"，可以看到内容已经更新；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;两种方法的区别：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1方法修改rootcron源文件；而2方法没有修改rootcron源文件，可以用gedit打开rootcron查看，可以发现内<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;容还是跟上一次用gedit来修改rootcron的内容，而不是用"crontab -e"来修改后的内容。<br>&nbsp;&nbsp;&nbsp;f、&nbsp;&nbsp; &nbsp;默认情况下，在crontab内容中运行命令的运行结果情况将被发送到/var/spool/mail/（当前用户名的文件）内<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 容中，如crontab内容中使用find命令的时候没有找到的反馈信息都会发送到mail内容中，<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1 11 * * * echo "Hello!"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8220;Hello&#8220;字符串将被发送到mail内容中，不过也可以重定向到其他文件，如：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1 11 * * * echo "Hello!" &gt; rc.txt<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其中rc.txt被创建到当前目录下。<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 正文：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<strong>crontab命令<br></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;cron是系统主要的调度进程，可以在无需人公干预的情况下运行作业。有一个叫做crontab的命令允许用户提交、编<br>辑或删除相应的作业。每一个用户都可以有一个crontab文件来把保存调度信息。可以使用它运行任意一个shell脚本或命<br>令。系统管理员通过cron.deny和cron.allow这两个文件来禁止或允许用户拥有自己的crontab文件。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;crontab内容的格式（6部分组成）<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;分&lt;&gt;时&lt;&gt;日&lt;&gt;月&lt;&gt;星期&lt;&gt;要运行的命令<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;注意&lt;&gt;表示空格，各部分范围为：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 分&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 1～59<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 时&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 1～23（0表示子夜）<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 日&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 1～31<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 月&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 1～12<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 星期&nbsp;&nbsp;&nbsp; 0～6（0表示星期天）<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注意：可以用横杠-表示一个时间范围，如你希望星期一至星期五运行，则在星期域使用1-5表示；可以用逗号","，如你<br>希望星期一和星期四运行这个作业，使用1,4表示；可以使用*表示连续的时间段。如果你对某个表示时间的域没有限定，用<br>*来表示。<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 上面是crontab内容的格式，下面的是crontab命令的格式：<br>&nbsp;&nbsp;&nbsp; crontab [ -u user ] -e -l -r<br>&nbsp;&nbsp;&nbsp; -u&nbsp;&nbsp;&nbsp; 用户名<br>&nbsp;&nbsp;&nbsp; -e&nbsp;&nbsp;&nbsp; 编辑crontab文件<br>&nbsp;&nbsp;&nbsp; -l&nbsp;&nbsp;&nbsp; 列出crontab文件中的内容<br>&nbsp;&nbsp;&nbsp; -r &nbsp;&nbsp;&nbsp; 删除crontab文件。<br>&nbsp;&nbsp;&nbsp; 注意：如果使用自己的名字登录，就不用使用-u选项，因为在执行crontab命令时，该命令能够知道当前的用户。<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 步骤：<br>&nbsp;&nbsp;&nbsp; <em style="COLOR: red">1、创建crontab文件<br></em>&nbsp;&nbsp;&nbsp; 方法1：新建文件名为rootcron（可自定）的文件，然后用gedit打开并编辑crontab内容并保存；<br>&nbsp;&nbsp;&nbsp; 方法2：用crontab -e命令。我的系统的redhat enterprise 5，默认打开为vi编辑器，可以通过手动设置为vi编<br>辑器：在$HOME目录的.bash_profile（其他系统可能为.profile）文件，加入&#8220;EDITOR=vi; export EDITOR&#8220;，然<br>后保存退出。<br>&nbsp;&nbsp;&nbsp; <em style="COLOR: red">2、提交crontab文件<br></em>&nbsp;&nbsp;&nbsp; 命令：crontab rootcron<br>&nbsp;&nbsp;&nbsp; 同时，在/var/spool/cron目录中保存该文件的副本，到那时这个副本的文件名为用户名。<br>&nbsp;&nbsp;&nbsp; <em style="COLOR: red">3、</em>提交以后可以查看当前的crontab内容，命令：crontab -l。可以做个备份，命令：crontab -l &gt; $HOME/<br>mycron。<br>&nbsp;&nbsp;&nbsp; <span style="COLOR: red"><em>4、删除crontab文件内容，</em></span>命令：crontab -r。然后保留在/var/spool/cron目录中的副本被删除。所以，不要<br>把源文件放在/var/spool/cron/目录下，以免执行删除命令的时候把源文件删除。可以在$HOME目录下放源文件，当执行<br>删除命令后如果要重新提交，可以在$HOME目录下执行：crontab rootcron就可以了。<br><br>&nbsp;&nbsp;&nbsp;<strong> at命令<br></strong>&nbsp;&nbsp;&nbsp; at命令允许用户向cron守护进程提交作业，使其在稍后的时间运行。这里稍后的时间可能是指 10min以后，也可能是<br>指几天以后。如果你希望在一个月或更长的时间以后运行，最好还是使用 crontab文件。<br>&nbsp;&nbsp;&nbsp; 用at命令提交的作业的所有输出将以电子邮件的形式发送给用户，除非重定向。根用户可以通过/etc目录下的<br>at.allow和at.deny文件来控制哪些用户可以使用at命令，哪些不可以。<br><br>&nbsp;&nbsp;&nbsp; at命令格式：<br>&nbsp;&nbsp;&nbsp; at [ -f script ] [ -m -l -r ] [ time ] [ date ]<br>&nbsp;&nbsp;&nbsp; -f script&nbsp;&nbsp;&nbsp; 所要提交的脚本或命令<br>&nbsp;&nbsp;&nbsp; -l&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 列出当前所有等待运行的作业<br>&nbsp;&nbsp;&nbsp; -r&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 清楚作业，要提供相应的作业标识（ID）<br>&nbsp;&nbsp;&nbsp; -m&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 作业完成给用户发邮件<br>&nbsp;&nbsp;&nbsp; time&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 时间，格式灵活。<br>&nbsp;&nbsp;&nbsp; date&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 日期，格式灵活。<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 步骤：<br>&nbsp;&nbsp;&nbsp; 使用at命令提交命令或脚本<br>&nbsp;&nbsp;&nbsp; 两种方法：<br>&nbsp;&nbsp;&nbsp; <em style="COLOR: red">a、使用命令提示符<span style="COLOR: red">，</span></em>如：&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;at&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">57</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;at</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;ls&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">l&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;atlist<br>&nbsp;&nbsp;&nbsp;&nbsp;at</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">EOT</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;job&nbsp;</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">&nbsp;at&nbsp;</span><span style="COLOR: #000000">2011</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">02</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">19</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">57</span></div>
&nbsp;&nbsp;&nbsp; &lt;EOF&gt;表示&lt;CTRL -D&gt;<br>&nbsp;&nbsp;&nbsp; <em style="COLOR: red">b、使用命令行方式，</em>可以通过提交脚本完成，如：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;at&nbsp;</span><span style="COLOR: #000000">18</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">&nbsp;today&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">f&nbsp;.</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">at_test.sh<br>&nbsp;&nbsp;&nbsp;&nbsp;job&nbsp;</span><span style="COLOR: #000000">7</span><span style="COLOR: #000000">&nbsp;at&nbsp;</span><span style="COLOR: #000000">2011</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">02</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">19</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">18</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">30</span></div>
&nbsp;&nbsp;&nbsp; 列出所提交的作业<br>&nbsp;&nbsp;&nbsp; 用命令：at -l，得到：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;at&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">l<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">7</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">2011</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">02</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">19</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">18</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">&nbsp;a&nbsp;root</span></div>
&nbsp;&nbsp;&nbsp; 其中，7为该作业的标识，后面是作业运行的日期/时间。最后一列a代表at。<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 清除一个作业：<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 两种方法：<br>&nbsp;&nbsp;&nbsp; <em style="COLOR: red">a、at -r [ job no ]<br></em>&nbsp;&nbsp;&nbsp; 例如：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;at&nbsp;</span><span style="COLOR: #000000">18</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">35</span><span style="COLOR: #000000">&nbsp;today&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">f&nbsp;.</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">at_test.sh<br>&nbsp;&nbsp;&nbsp;&nbsp;job&nbsp;</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">&nbsp;at&nbsp;</span><span style="COLOR: #000000">2011</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">02</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">19</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">18</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">35</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;at&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">l<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">2011</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">02</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">19</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">18</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">35</span><span style="COLOR: #000000">&nbsp;a&nbsp;root<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;at&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">r&nbsp;job&nbsp;</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;at&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">l</span></div>
&nbsp;&nbsp;&nbsp; <em style="COLOR: red">b、atrm [ job no ]<br></em>&nbsp;&nbsp;&nbsp; 例如：&nbsp;&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;at&nbsp;</span><span style="COLOR: #000000">18</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">38</span><span style="COLOR: #000000">&nbsp;today&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">f&nbsp;.</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">at_test.sh<br>&nbsp;&nbsp;&nbsp;&nbsp;job&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">&nbsp;at&nbsp;</span><span style="COLOR: #000000">2011</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">02</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">19</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">18</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">38</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;at&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">l<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">2011</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">02</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">19</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">18</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">38</span><span style="COLOR: #000000">&nbsp;a&nbsp;root<br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;atrm&nbsp;job&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;at&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">l</span></div>
<br>&nbsp;&nbsp;&nbsp; <strong>＆命令<br></strong>&nbsp;&nbsp;&nbsp; 当在前台运行某个作业时，终端被该作业占据；而在后台运行作业时，它不会占据终端，可以使用＆命令把作业放在后<br>台执行。<br>&nbsp;&nbsp;&nbsp; 格式为：<br>&nbsp;&nbsp;&nbsp; 命令 &amp;<br>&nbsp;&nbsp;&nbsp; 不过作业在后台执行的结果也会输出到屏幕上，干扰你的工作，所以可以通过重定向解决，如：<br>&nbsp;&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#find&nbsp;.&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">name&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">at_test</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">find.dt&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&gt;&amp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">5303</span></div>
&nbsp;&nbsp;&nbsp; 其中[1] 5303为进程号。<br>&nbsp;&nbsp;&nbsp; 注意：需要用户交互的命令不要放在后台执行，因为这样你的机器就会在那里傻等。<br>&nbsp;&nbsp;&nbsp; 当上面的作业完成时，按回车键就会出现一个提示表示完成：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[root@localhost&nbsp;test]#&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;&nbsp;Done&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;find&nbsp;.&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">name&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">at_test</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">find.dt&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&gt;&amp;</span><span style="COLOR: #000000">1</span></div>
&nbsp;&nbsp;&nbsp; 可以通过命令&#8220;ps x&#8220;或者&#8220;ps -ef&#8220;来查看进程。并用kill命令杀死进程，不过前提是知道该进程的进程号。如：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;kill&nbsp;</span><span style="COLOR: #000000">5303</span></div>
<br>&nbsp;&nbsp;&nbsp; <strong>nohup命令<br></strong>&nbsp;&nbsp;&nbsp; 作用：如果你正在运行一个进程，而且觉得在退出帐户之前不会结束，那么使用nohup命令使其在退出帐户后继续运行<br>。格式为：<br>&nbsp;&nbsp;&nbsp; nohup command &amp;<br>&nbsp;&nbsp;&nbsp; 如何验证呢？<br>&nbsp;&nbsp;&nbsp; 方法：先用nohup提交一个进程，然后退出帐户重新登录，然后在用ps命令查看进程，看是否还在。 
<img src ="http://www.cppblog.com/xingjiegaojue/aggbug/140238.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xingjiegaojue/" target="_blank">张纶</a> 2011-02-17 22:29 <a href="http://www.cppblog.com/xingjiegaojue/archive/2011/02/17/140238.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《LInux与Unix Shell编程指南》笔记之使用find和xargs</title><link>http://www.cppblog.com/xingjiegaojue/archive/2011/02/17/140236.html</link><dc:creator>张纶</dc:creator><author>张纶</author><pubDate>Thu, 17 Feb 2011 12:24:00 GMT</pubDate><guid>http://www.cppblog.com/xingjiegaojue/archive/2011/02/17/140236.html</guid><wfw:comment>http://www.cppblog.com/xingjiegaojue/comments/140236.html</wfw:comment><comments>http://www.cppblog.com/xingjiegaojue/archive/2011/02/17/140236.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xingjiegaojue/comments/commentRss/140236.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xingjiegaojue/services/trackbacks/140236.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="FONT-SIZE: 14pt">使用find和xargs&nbsp;<br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.cppblog.com/Files/xingjiegaojue/002.PDF"><span style="FONT-SIZE: 10pt">点击此处打开《Linux与Unix Shell编程指南》本章pdf文档</span></a><br><br><strong>find命令的一般格式：<br></strong>&nbsp;&nbsp; &nbsp;find pathname -options [-print -exec -ok]<br>&nbsp;&nbsp; &nbsp;含义：<br>&nbsp;&nbsp; &nbsp;pathname&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;find命令所查找的目录路径。例如用.表示当前目录，用/表示系统根目录，用~表示$HOME目录。<br>&nbsp;&nbsp; &nbsp;-print&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; find命令将匹配的文件输出到标准输出。<br>&nbsp;&nbsp; &nbsp;－exec&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {} \;注意{}和<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; \;之间的空格。<br>&nbsp;&nbsp; &nbsp;－ok&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 和－exec的作用相同，只不过以一种更为安全的模式执行该参数所给出的shell命令，在执行每一个命<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 令之前都会给出提示，让用户来确定是否执行。<br>&nbsp;&nbsp; &nbsp;－optioin&nbsp;&nbsp; &nbsp;&nbsp; 如下：<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; －name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;按照文件名查找文件<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; －perm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;按照文件权限来查找文件<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; －prune&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用这一选项可以使find命令不在当前指定的目录中查找，如果同时<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用了－depth选项那么－prune选项将被find命令忽略。<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;－user&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;按照文件属主来查找文件。<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; －group&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;按照文件所属的组来查找文件<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; －mtime －n ＋0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;按照文件的更改时间来查找文件，－n表示文件更改时间距现在n天以<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 内，＋n表示文件更改时间距现在n天以前。还有－atime和－ctime选<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 项，但它们都和－mtime选项相似。<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; －nogroup&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查找无有效所属组的文件，即该文件所属的组在/etc/groups中不存在。<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; －nouser&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 查找无有效属主的文件，即该文件的属主在/etc/passwd中不存在。<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;－newer file1 ！ file2&nbsp;&nbsp;&nbsp;查找更改时间比文件file1新但比文件file2旧的文件。<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;－type&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 查找某一类型的文件，比如：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;&nbsp;&nbsp;&nbsp;块设备文件<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d&nbsp;&nbsp;&nbsp;&nbsp;目录<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;&nbsp;&nbsp;&nbsp;字符设备文件<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p&nbsp;&nbsp;&nbsp;&nbsp;管道文件<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l&nbsp;&nbsp;&nbsp;&nbsp;符号链接文件<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f&nbsp;&nbsp;&nbsp;&nbsp;普通文件<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;－size n[c]&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;查找文件长度为n块的文件，带有c时表示文件长度以字节计。<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;－depth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;在查找文件时，首先查找当前目录中的文件，然后再在其子目录中查找。<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;－mount&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在查找文件时不跨越文件系统mount点<br>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; －follow&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;如果find命令遇到符号链接文件，就跟踪至链接所指向的文件。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; 举例如下：<br>&nbsp;&nbsp;&nbsp;<em style="COLOR: red"> a、－name<br></em>&nbsp;&nbsp;&nbsp; 如想在$HOME中查找文件名符合*.txt的文件，使用~作为pathname参数，波浪号代表你的$HOME目录。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">name&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">*.txt</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print</span></div>
&nbsp;&nbsp;&nbsp; 如果想要在/etc目录中查找文件名以host开头的文件，可以用：&nbsp;&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">etc&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">name&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">host*</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <em style="COLOR: red">b、-perm<br></em>&nbsp;&nbsp;&nbsp; 提示：在使用这一选项的时候，最好使用八进制的权限表示法。<br>&nbsp;&nbsp;&nbsp; 例如：<br>&nbsp;&nbsp;&nbsp; 为了在当前目录下查找文件权限位为755的文件，即文件属主可以读、写、执行，其他用户可以读、执行的文件，可以用&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;.&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">perm&nbsp;</span><span style="COLOR: #000000">755</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;如果在当前目录下查找所有用户都可读、可写、可执行的文件，在八进制数字前面要加一个横杠-。007和在chmod命令<br>&nbsp;&nbsp;&nbsp; 的绝对模式中所采用的表示法完全相同。&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;.&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">perm&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">007</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <em style="COLOR: red">c、-prune<br></em>&nbsp;&nbsp;&nbsp; 在查找文件时希望忽略某个目录。在使用－prune选项时要小心，因为如果你同时使用－depth选项，那么－prune选<br>项将会被find命令忽略。<br>&nbsp;&nbsp;&nbsp; 例如：<br>&nbsp;&nbsp;&nbsp; 如果希望在/apps目录下查找所有文件，但不希望在/apps/bin目录下查找，可以用：&nbsp;&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">apps&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">name&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">/aaps/bin</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">prune&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">o&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print</span></div>
&nbsp;&nbsp;&nbsp; 假如在root目录下有文件夹C和D，里面都有文件gcc_test，在root目录下也有文件gcc_test，用：&nbsp;&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;.&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">name&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">gcc_test</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print&nbsp;（当前在root目录下，所以路径用</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">）</span></div>
&nbsp;&nbsp;&nbsp; 显示结果为：&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;.</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">gcc_test<br>&nbsp;&nbsp;&nbsp;.</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">D</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">gcc_test<br>&nbsp;&nbsp;&nbsp;.</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">C</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">gcc_test</span></div>
&nbsp;&nbsp;&nbsp; 现在跳开C文件夹，用：&nbsp;&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;.&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">path&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">./C</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">prune&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">o&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">name&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">gcc_test</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print</span></div>
&nbsp;&nbsp;&nbsp; 显示结果为；&nbsp;&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;.</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">gcc_test<br>&nbsp;&nbsp;&nbsp;.</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">D</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">gcc_test</span></div>
&nbsp;&nbsp;&nbsp; 解释：&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;-</span><span style="COLOR: #000000">path&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">./C</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">prune&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">o&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">name&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">gcc_test</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print</span></div>
是&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;-</span><span style="COLOR: #000000">path&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">./C</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">a&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">prune&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">o&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">name&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">gcc_test</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print</span></div>
&nbsp;&nbsp;&nbsp;的简写，-a表示&#8220;与&#8221;的意思，也就是说，如果路径"./C"存在（即存在文件夹C）那么-prune，即跳过，否则在整个<br>&nbsp;&nbsp;&nbsp;root中查找。<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 现在跳开C和D文件夹，用：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;.&nbsp;\(&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">path&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">./C</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">o&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">path&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">./D</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;\)&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">prune&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">o&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">name&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">gcc_test</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在这里要注意"("与"-path"之间的空格和"./D"与"\"之间的空格。<br>&nbsp;&nbsp;&nbsp; &nbsp;下面，解释这一行：<br>&nbsp;&nbsp;&nbsp; &nbsp;第一个-o表示&#8220;或&#8220;的意思，上句意思为：如果只有文件夹C没有文件夹D，那么跳过文件夹C；或者只有文件夹D没有<br>文件夹C，那么跳过文件夹D；或者文件夹C和D都有，那么两个文件夹都跳过。<br>&nbsp;&nbsp;&nbsp; &nbsp;第二个-o表示路径C和路径D至少存在一个的话，那么跳过不查找文件夹C和D里面的gcc_test，如果两个路径（即不<br>存在文件夹C和D）都不存在的话，那么直接在当前目录查找gcc_test，相当于：&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;.&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">name&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">gcc_test</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print</span></div>
&nbsp;&nbsp;&nbsp; <em style="COLOR: red">d、-user与-nouser<br></em>&nbsp;&nbsp;&nbsp; 按照文件属主查找文件。例如，在$HOME目录中查找文件属主为balu的文件，可以用：&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">user&nbsp;balu&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print</span></div>
&nbsp;&nbsp;&nbsp; 如果查找属主帐户已经被删除的文件，可以用-nouser选项。这样就能够找到那些属主在/etc/passwd文件中没有有<br>效帐户的文件，不过，不必给出用户名，如：&nbsp;&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;.&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">nouser&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print</span></div>
&nbsp;&nbsp;<em style="COLOR: red"> e、group与nogroup<br></em>&nbsp;&nbsp;&nbsp; 格式与user和nouser相同。<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <em style="COLOR: red">f、-mtime<br></em>&nbsp;&nbsp;&nbsp; 希望在当前目录下查找更改时间在5日以内的文件，用：&nbsp;&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;.&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">mtime&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print</span></div>
&nbsp;&nbsp;&nbsp; 希望在当前目录下查找更改时间在5日以前的文件，用：&nbsp;&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;.&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">mtime&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print</span></div>
&nbsp;&nbsp;&nbsp; <em style="COLOR: red">g、－newer file1 ！ file2<br></em>&nbsp;&nbsp;&nbsp; 可以在当前目录按顺序每隔一分钟新建文件1、2、3，并用&nbsp;&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;ls&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">l</span></div>
&nbsp;&nbsp;&nbsp; 命令查看如下：&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;-</span><span style="COLOR: #000000">rw</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">r</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">r</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">02</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">17</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">17</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">21</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;-</span><span style="COLOR: #000000">rw</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">r</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">r</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">02</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">17</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">17</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">22</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;-</span><span style="COLOR: #000000">rw</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">r</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">r</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">02</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">17</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">17</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">23</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">3</span></div>
&nbsp;&nbsp;&nbsp; 现在查找比文件1新但比文件3旧的文件，用：&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;.&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">newer&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">newer&nbsp;</span><span style="COLOR: #000000">2</span></div>
&nbsp;&nbsp;&nbsp; 结果为：&nbsp;&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;.</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span></div>
&nbsp;&nbsp; 如果想使用find命令查找更改时间在两个小时以内的文件，除非有一个现成的文件其更改时间恰好在两个小时以前，否<br>则就没有可用来比较更改时间的文件。方法：现创建一个文件，然后修改其时间即可。<br>&nbsp;&nbsp;&nbsp; <em style="COLOR: red">h、-type<br></em>&nbsp;&nbsp;&nbsp; 例如，查找当前目录下所有的目录，用：&nbsp;&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;.&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">type&nbsp;d&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print</span></div>
&nbsp;&nbsp;&nbsp;<em style="COLOR: red"> i、-size<br></em>&nbsp;&nbsp;&nbsp; 可以以块为单位查找（直接用数字即可），也可以以字节为单位查找（格式为Nc，N为数字），比如：<br>&nbsp;&nbsp;&nbsp; 在当前目录下查找文件长度大于1M字节的文件，用：&nbsp;&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;.&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">size&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1000000c&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print</span></div>
&nbsp;&nbsp;&nbsp; 在当前目录下查找文件长度超过10块的文件（一块等于512字节），可以用：&nbsp;&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;.&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">size&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print</span></div>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <em style="COLOR: red">j、-mount<br></em>&nbsp;&nbsp;&nbsp; 在当前的文件系统中查找文件（不进入其他文件系统），如：<br>&nbsp;&nbsp;&nbsp; 在当前目录下查找位于本文件系统中文件名以XC结尾的文件：&nbsp;&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;.&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">name&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">*.XC</span></div>
&nbsp;&nbsp;&nbsp; 使用exec或ok来执行shell命令<br>&nbsp;&nbsp;&nbsp; 一旦find命令匹配到相应的文件，就可以用-exec选项中的命令对其进行操作。<br>&nbsp;&nbsp;&nbsp; exec选项后面跟随着所要执行的命令，然后是一对儿{}，一个空格和一个\，最后是一个分号。<br>&nbsp;&nbsp;&nbsp; 例如：<br>&nbsp;&nbsp;&nbsp; 在当前目录查找文件类型为f的文件，并列出来：&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;.&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">type&nbsp;f&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">exec&nbsp;ls&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">l&nbsp;{}&nbsp;\;</span></div>
&nbsp;&nbsp;&nbsp; 如果涉及到删除的操作，最好使用安全模式，即-ok替代-exec，如：<br>&nbsp;&nbsp;&nbsp; 在当前目录查找所有文件名以.LOG结尾、更改时间在5日以上的文件，并删除它们，只不过在删除之前先给出提示。&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;.&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">name&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">*.LOG</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">mtime&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">ok&nbsp;rm&nbsp;{}&nbsp;\;</span></div>
&nbsp;&nbsp;&nbsp; &lt; rm ... ./nets.LOG &gt;?<br>&nbsp;&nbsp;&nbsp; 按y键回车删除。<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;<strong> xargs命令<br></strong>&nbsp;&nbsp;&nbsp; 在使用 find命令的 -exec选项处理匹配到的文件时，find命令将所有匹配到的文件一起传递给exec执行。不幸的是，<br>有些系统对能够传递给exec的命令长度有限制，这样在find命令运行几分钟之后，就会出现溢出错误。错误信息通常是&#8220;<br>参数列太长&#8221;或&#8220;参数列溢出&#8221;。这就是xargs命令的用处所在，特别是与 find命令一起使用。Find命令把匹配到的文件<br>传递给xargs命令，而xargs命令每次只获取一部分文件而不是全部，不像 -exec选项那样。这样它可以先处理最先获取的<br>一部分文件，然后是下一批，并如此继续下去。在有些系统中，使用 -exec选项会为处理每一个匹配到的文件而发起一个<br>相应的进程，并非将匹配到的文件全部作为参数一次执行；这样在有些情况下就会出现进程过多，系统性能下降的问题，<br>因而效率不高；而使用xargs命令则只有一个进程。另外，在使用xargs命令时，究竟是一次获取所有的参数，还是分批取<br>得参数，以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。<br>&nbsp;&nbsp;&nbsp; 下面的例子查找系统中的每一个普通文件，然后使用 xargs命令来测试它们分别属于哪类文件：&nbsp;&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;.&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">type&nbsp;f&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">&nbsp;xargs&nbsp;file</span></div>
&nbsp;&nbsp;&nbsp; 下面的例子在整个系统中查找内存信息转储文件 (coredump) ，然后把结果保存到/tmp/core.log 文件中：&nbsp;&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;find&nbsp;.&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">name&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">core</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">&nbsp;xargs&nbsp;echo&nbsp;</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&gt;/</span><span style="COLOR: #000000">tmp</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">core.log</span></div>
&nbsp;&nbsp;&nbsp; 在下面的例子中，我们用 grep命令在所有的普通文件中搜索 device这个词：&nbsp;&nbsp;&nbsp;
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;find&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">type&nbsp;f&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">print&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">&nbsp;xargs&nbsp;grep&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">device</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;&nbsp;</span></div>
<img src ="http://www.cppblog.com/xingjiegaojue/aggbug/140236.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xingjiegaojue/" target="_blank">张纶</a> 2011-02-17 20:24 <a href="http://www.cppblog.com/xingjiegaojue/archive/2011/02/17/140236.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《LInux与Unix Shell编程指南》笔记之文件安全与权限</title><link>http://www.cppblog.com/xingjiegaojue/archive/2011/02/17/140206.html</link><dc:creator>张纶</dc:creator><author>张纶</author><pubDate>Thu, 17 Feb 2011 02:49:00 GMT</pubDate><guid>http://www.cppblog.com/xingjiegaojue/archive/2011/02/17/140206.html</guid><wfw:comment>http://www.cppblog.com/xingjiegaojue/comments/140206.html</wfw:comment><comments>http://www.cppblog.com/xingjiegaojue/archive/2011/02/17/140206.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xingjiegaojue/comments/commentRss/140206.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xingjiegaojue/services/trackbacks/140206.html</trackback:ping><description><![CDATA[<p style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体" align=left>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="FONT-SIZE: 14pt">&nbsp;一、文件安全与权限<br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.cppblog.com/Files/xingjiegaojue/001.PDF">点击此处打开《Linux与Unix Shell编程指南》本章pdf文档<br></a><strong>1.1 文件<br></strong>&nbsp;&nbsp;&nbsp; <span style="FONT-FAMILY: 宋体">当你创建一个文件的时候，系统保存了有关该文件的全部信息，包括：<br></span>&nbsp;&nbsp;&nbsp; a、文件的位置；&nbsp;&nbsp;&nbsp; b、文件类型；&nbsp;&nbsp;&nbsp; c、文件长度；&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp; d、哪位用户拥有该文件，哪些用户可以访问该文件。<br>&nbsp;&nbsp;&nbsp; e、i结点；&nbsp;&nbsp;&nbsp; f、文件的修改时间；&nbsp;&nbsp;&nbsp; g、文件的权限位。<br>&nbsp;&nbsp;&nbsp; <br><strong>1.2 文件类型<br></strong>&nbsp;&nbsp;&nbsp; d&nbsp;&nbsp;&nbsp; 目录<br>&nbsp;&nbsp;&nbsp; l&nbsp;&nbsp;&nbsp; 符号连接（指向另一个文件）<br>&nbsp;&nbsp;&nbsp; s&nbsp;&nbsp;&nbsp; 套接字文件<br>&nbsp;&nbsp;&nbsp; b&nbsp;&nbsp;&nbsp; 块设备文件<br>&nbsp;&nbsp;&nbsp; c&nbsp;&nbsp;&nbsp; 字符设备文件<br>&nbsp;&nbsp;&nbsp; p&nbsp;&nbsp;&nbsp; 命名管道文件<br>&nbsp;&nbsp;&nbsp; －&nbsp;&nbsp;&nbsp; 普通文件，即不属于以上几种类型的文件。<br>&nbsp;&nbsp;&nbsp; <br><strong>1.3 权限<br></strong>&nbsp;&nbsp;&nbsp; 当新创建一个文件时系统并没有赋于属主执行权限，这是出于加强系统安全的考虑，必须手工修改这一权限位。<br>&nbsp;&nbsp;&nbsp; <br><strong>1.4 修改权限位<br></strong>&nbsp;&nbsp;&nbsp; a、符号模式<br>&nbsp;&nbsp;&nbsp; chmod [who]operator[permission] filename<br>&nbsp;&nbsp;&nbsp; who的含义<br>&nbsp;&nbsp;&nbsp; u&nbsp;&nbsp;&nbsp; 文件属主权限<br>&nbsp;&nbsp;&nbsp; g&nbsp;&nbsp;&nbsp; 同组用户权限<br>&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp;&nbsp; 其他用户权限<br>&nbsp;&nbsp;&nbsp; a&nbsp;&nbsp;&nbsp; 所有用户权限<br>&nbsp;&nbsp;&nbsp; operator的含义：<br>&nbsp;&nbsp;&nbsp; ＋&nbsp;&nbsp;&nbsp; 增加权限<br>&nbsp;&nbsp;&nbsp; －&nbsp;&nbsp;&nbsp; 取消权限<br>&nbsp;&nbsp;&nbsp; ＝&nbsp;&nbsp;&nbsp; 设定权限<br>&nbsp;&nbsp;&nbsp; permission的含义<br>&nbsp;&nbsp;&nbsp; r&nbsp;&nbsp;&nbsp; 读权限<br>&nbsp;&nbsp;&nbsp; w&nbsp;&nbsp;&nbsp; 写权限<br>&nbsp;&nbsp;&nbsp; x&nbsp;&nbsp;&nbsp; 执行权限<br>&nbsp;&nbsp;&nbsp; s&nbsp;&nbsp;&nbsp; 文件属主和组set-ID<br>&nbsp;&nbsp;&nbsp; t&nbsp;&nbsp;&nbsp; 粘性位*<br>&nbsp;&nbsp;&nbsp; l&nbsp;&nbsp;&nbsp; 给文件枷锁，使其他用户无法访问。<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 如果在一个文件列表看到&#8220;t&#8220;，那么意味这该脚本或程序在执行时会被放在虚存中。<br>&nbsp;&nbsp;&nbsp; 如果在一个目录上出现&#8220;t&#8220;，意味这该目录中的文件只有其属主才可以删除，其他用户不能。<br>&nbsp;&nbsp;&nbsp; 例如：<br>&nbsp;&nbsp;&nbsp; 设置一个用户的权限：&nbsp;&nbsp;&nbsp; chmod u+x myfile<br>&nbsp;&nbsp;&nbsp; 设置两个用户的权限：&nbsp;&nbsp;&nbsp; chomd u+x o-w myfile<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; b、绝对模式<br>&nbsp;&nbsp;&nbsp; chmod [mode] file <br>&nbsp;&nbsp;&nbsp; 其中mode是一个八进制数。<br>&nbsp;&nbsp;&nbsp; 八进制数&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 含义<br>&nbsp;&nbsp;&nbsp; 0400&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 文件属主可读<br>&nbsp;&nbsp;&nbsp; 0200&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 文件属主可写<br>&nbsp;&nbsp;&nbsp; 0100&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 文件属主可执行<br>&nbsp;&nbsp;&nbsp; 0040&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 同组用户可读<br>&nbsp;&nbsp;&nbsp; 0020&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 同组用户可写<br>&nbsp;&nbsp;&nbsp; 0010&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 同组用户可执行<br>&nbsp;&nbsp;&nbsp; 0004&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 其他用户可读<br>&nbsp;&nbsp;&nbsp; 0002&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 其他用户可写<br>&nbsp;&nbsp;&nbsp; 0001&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 其他用户可执行<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 由此可知，文件属主、同组用户和其他用户分别能够具有的最大权限值为7，即4＋2＋1＝7，指可读、可写、可执行。<br>&nbsp;&nbsp;&nbsp; 例如：<br>&nbsp;&nbsp;&nbsp; 如果希望一次设置目录下所有文件的权限，可以用：<br>&nbsp;&nbsp;&nbsp; chmod 644 *<br>&nbsp;&nbsp;&nbsp; 这将使文件属主具有读和写的权限，同组用户和其他用户只有读的权限。<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 还可以通过使用－R选项连同子目录下的文件一起设置：<br>&nbsp;&nbsp;&nbsp; chmod -R 664 /usr/local/home/dave/*<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 以上强调的是文件的权限，下面说明目录权限<br>&nbsp;&nbsp;&nbsp; r&nbsp;&nbsp;&nbsp; 可以列出该目录中的文件<br>&nbsp;&nbsp;&nbsp; w&nbsp;&nbsp;&nbsp; 可以在该目录中创建或删除文件<br>&nbsp;&nbsp;&nbsp; x&nbsp;&nbsp;&nbsp; 可以搜索或进入该目录<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 设置方法同设置文件权限方法一样，有以下两点注意：<br>&nbsp;&nbsp;&nbsp; a、如果把同组用户或其他用户针对某一目录的权限设置为－－x，那么他们将无法列出该目录中的文件。如果该目录中有一个执行位置位的脚本或程序，只要用户知道它的路径和文件名，仍然可以执行它。<br>&nbsp;&nbsp;&nbsp; b、目录的权限将会覆盖该目录中的文件的权限。例如，目录docs具有权限：<br>&nbsp;&nbsp;&nbsp; drwxr--r--&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; louise&nbsp;&nbsp;&nbsp; admin&nbsp;&nbsp;&nbsp; 2390&nbsp;&nbsp;&nbsp; Jul 23&nbsp;&nbsp;&nbsp; 09:44 docs<br>&nbsp;&nbsp;&nbsp; 而该目录下的文件pay的权限为：<br>&nbsp;&nbsp;&nbsp; -rwxrwxrwx 1&nbsp;&nbsp;&nbsp; louise&nbsp;&nbsp;&nbsp; admin&nbsp;&nbsp;&nbsp; 5567&nbsp;&nbsp;&nbsp; Oct 3&nbsp;&nbsp;&nbsp; 05:40 pay<br>&nbsp;&nbsp;&nbsp; 那么admin组的用户将无法编辑该文件，因为它所属的目录不具有这样的权限。<br>&nbsp;&nbsp;&nbsp; <br><strong>1.7 chown和chgrp<br></strong>&nbsp;&nbsp;&nbsp; chown用来更改文件的属主，chgrp用来更改文件属主所在的组。只有文件的属主和系统管理员可以改变文件的所有权，一旦将文件的所有权交给另外一个用户，就无法再重新收回它的所有权。只有求助于系统管理员。更改用户或用户组时相应的suid也将被清除。<br>&nbsp;&nbsp;&nbsp; 格式：chmod -R -h owner file<br>&nbsp;&nbsp;&nbsp; owner可以是合法的用户名或者用户ID。<br>&nbsp;&nbsp;&nbsp; －R意味着对所有子目录下的文件也都进行同样的操作。<br>&nbsp;&nbsp;&nbsp; －h意味着在改变链接文件的属主时不影响该链接所指向 的目标文件。<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 注意：<br>&nbsp;&nbsp;&nbsp; 通过groups或id命令找出自己属于哪些用户组。<br>&nbsp;&nbsp;&nbsp; 通过groups [user_name]查出user_name所在用户组。<br>&nbsp;&nbsp;&nbsp; <br><strong>1.8 umask<br></strong>&nbsp;&nbsp;&nbsp; 作用：<br>&nbsp;&nbsp;&nbsp; 当最初登录到系统中时，umask命令确定了你创建文件的缺省模式，这一命令实际上和chmod命令正好相反。<br>&nbsp;&nbsp;&nbsp; 注意：<br>&nbsp;&nbsp;&nbsp; 1、设置了umask值后，相应的改变直到退出该shell或使用另外的umask命令之前一直有效。<br>&nbsp;&nbsp;&nbsp; 2、对于文件来说，系统不允许你在创建一个文本文件时就赋于它执行权限，所以创建一个文本时的3个x位都为"-"，必须在创建后用chmod修改，所以umask值最大为6。<br>&nbsp;&nbsp;&nbsp; 3、对于目录来说，允许设置执行权限，所以umask值最大为7。<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 命令umask用来查看当前umask值。<br>&nbsp;&nbsp;&nbsp; 命令umsak number用来设置umask值。<br>&nbsp;&nbsp;&nbsp; umask值与权限：<br>&nbsp;&nbsp;&nbsp; umask&nbsp;&nbsp;&nbsp; 文件&nbsp;&nbsp;&nbsp; 目录<br>&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 7<br>&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 6<br>&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 5<br>&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 4<br>&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 3<br>&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 2<br>&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 1<br>&nbsp;&nbsp;&nbsp; 7&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 0<br>&nbsp;&nbsp;&nbsp; 记忆方法：<br>&nbsp;&nbsp;&nbsp; 假如当前umask值为021：<br>&nbsp;&nbsp;&nbsp; 新创建文件的默认最大权限&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rw-rw-rw-&nbsp;&nbsp;&nbsp; 666<br>&nbsp;&nbsp;&nbsp; 新创建目录的默认最大权限&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rwxrwxrwx&nbsp;&nbsp;&nbsp; 777<br>&nbsp;&nbsp;&nbsp; 修改umask后新创建文件的最大权限&nbsp;&nbsp;&nbsp; rw-r--rw-&nbsp;&nbsp;&nbsp; 646<br>&nbsp;&nbsp;&nbsp; 修改umask后新创建目录的最大权限&nbsp;&nbsp;&nbsp; rwxr-xrw-&nbsp;&nbsp;&nbsp; 756</p>
<img src ="http://www.cppblog.com/xingjiegaojue/aggbug/140206.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xingjiegaojue/" target="_blank">张纶</a> 2011-02-17 10:49 <a href="http://www.cppblog.com/xingjiegaojue/archive/2011/02/17/140206.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux操作系统的硬链接与软链接（转）</title><link>http://www.cppblog.com/xingjiegaojue/archive/2011/02/14/140030.html</link><dc:creator>张纶</dc:creator><author>张纶</author><pubDate>Mon, 14 Feb 2011 06:50:00 GMT</pubDate><guid>http://www.cppblog.com/xingjiegaojue/archive/2011/02/14/140030.html</guid><wfw:comment>http://www.cppblog.com/xingjiegaojue/comments/140030.html</wfw:comment><comments>http://www.cppblog.com/xingjiegaojue/archive/2011/02/14/140030.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/xingjiegaojue/comments/commentRss/140030.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/xingjiegaojue/services/trackbacks/140030.html</trackback:ping><description><![CDATA[<span class=Apple-style-span style="WORD-SPACING: 0px; FONT: medium Simsun; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; TEXT-ALIGN: center; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span class=Apple-style-span style="FONT-SIZE: 12px; COLOR: rgb(51,51,51); LINE-HEIGHT: 18px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif, 宋体">
<h1 style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 24px; PADDING-BOTTOM: 0px; MARGIN: 0px; LINE-HEIGHT: 2; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;（1）<font face="Times New Roman" color=#000000 size=3> </font>Linux操作系统的硬链接与软链接讲解</h1>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 14pt; PADDING-BOTTOM: 0px; MARGIN: 0px; LINE-HEIGHT: 2; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp; 原文地址：<a href="http://www.xxlinux.com/linux/article/accidence/technique/20061121/5907.html"><u><font color=#0000ff>http://www.xxlinux.com/linux/article/accidence/technique/20061121/5907.html</font></u></a><span class=Apple-style-span style="WORD-SPACING: 0px; FONT: medium Simsun; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; TEXT-ALIGN: center; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span class=Apple-style-span style="FONT-SIZE: 14px; COLOR: rgb(51,51,51); LINE-HEIGHT: 25px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif, 宋体; TEXT-ALIGN: left"></p>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px; TEXT-INDENT: 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none">首先要弄清楚,在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里，在访问文件时，索引结点被复制到内存在，从而实现文件的快速访问。</p>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px; TEXT-INDENT: 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none">链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。Linux中包括两种链接：硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接（Symbolic link）。</p>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px; TEXT-INDENT: 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"><strong>一、硬链接</strong></p>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px; TEXT-INDENT: 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none">硬链接说白了是一个指针，指向文件索引节点，系统并不为它重新分配inode。可以用:ln命令来建立硬链接。语法:<br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;ln&nbsp;[options]&nbsp;existingfile&nbsp;newfile<br>&nbsp;&nbsp;&nbsp;ln[options]&nbsp;existingfile</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">list&nbsp;directory</span></div>
</span></span></span></span><span class=Apple-style-span style="WORD-SPACING: 0px; FONT: medium Simsun; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; TEXT-ALIGN: center; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span class=Apple-style-span style="FONT-SIZE: 14px; COLOR: rgb(51,51,51); LINE-HEIGHT: 25px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif, 宋体; TEXT-ALIGN: left">
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px; TEXT-INDENT: 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none">用法: 第一种:为&#8221;existingfile&#8221;创建硬链接,文件名为&#8221;newfile&#8221;。第二种:在&#8221;directory&#8221;目录中,为&#8221;existingfile-list&#8221;中包含的所有文件创建一个同名的硬链接。常用可选[options] &#8211;f 无论&#8221;newfile&#8221;存在与否,都创建链接。-n 如果&#8221;newfile&#8221;已存在,就不创建链接。</p>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px; TEXT-INDENT: 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none">下面举一些例子:<br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;$&nbsp;ls&nbsp;&#8211;il<br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;13058</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">rwx&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;longcheng&nbsp;longcheng&nbsp;</span><span style="COLOR: #000000">48</span><span style="COLOR: #000000">&nbsp;8月&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">16</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">38</span><span style="COLOR: #000000">&nbsp;file1<br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;13059</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">rwx&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;longcheng&nbsp;longcheng&nbsp;</span><span style="COLOR: #000000">57</span><span style="COLOR: #000000">&nbsp;8月&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">16</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">40</span><span style="COLOR: #000000">&nbsp;file2<br>&nbsp;&nbsp;&nbsp;$&nbsp;ln&nbsp;file2&nbsp;file2hard<br>&nbsp;&nbsp;&nbsp;$&nbsp;ls&nbsp;&#8211;il<br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;13058</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">rwx&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;longcheng&nbsp;longcheng&nbsp;</span><span style="COLOR: #000000">48</span><span style="COLOR: #000000">&nbsp;8月&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">16</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">38</span><span style="COLOR: #000000">&nbsp;file1<br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;13059</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">rwx&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;longcheng&nbsp;longcheng&nbsp;</span><span style="COLOR: #000000">57</span><span style="COLOR: #000000">&nbsp;8月&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">16</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">40</span><span style="COLOR: #000000">&nbsp;file2<br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;13059</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">rwx&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;longcheng&nbsp;longcheng&nbsp;</span><span style="COLOR: #000000">57</span><span style="COLOR: #000000">&nbsp;8月&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">16</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">40</span><span style="COLOR: #000000">&nbsp;file2hard</span></div>
<br><span class=Apple-style-span style="WORD-SPACING: 0px; FONT: medium Simsun; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; TEXT-ALIGN: center; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span class=Apple-style-span style="FONT-SIZE: 14px; COLOR: rgb(51,51,51); LINE-HEIGHT: 25px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif, 宋体; TEXT-ALIGN: left">
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px; TEXT-INDENT: 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none">注意在创建链接前,file1 显示的链接数目为1,创建链接后(1)file1和file1hard的链接数目都变为2;(2) file1和file1hard在inode号是一样的(3) file1和file1hard显示的文件大小也是一样。可见进行了ln命令的操作结果：file1和file1hard是同一个文件的两个名字，它们具有同样的索引节点号和文件属性，建立文件file1的硬链接，就是为file1的文件索引节点在当前目录上建立一个新指针。如下图,你可以删除其中任何一个,如rm file2 ,每次只会删除一个指针,</p>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px; TEXT-INDENT: 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none">链接数同时减一,只有将所有指向文件内容的指针,也即链接数减为0时，内核才会把文件内容从磁盘上删除。当前目录逻辑结构：(不好意思图没有显示出来)。</p>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px; TEXT-INDENT: 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none">还可以在不同目录，但同一文件系统中建立文件的硬链接。设file1、file2在目录/home/longcheng/dir1中，下面的命令，在/home/longcheng中建立file2的硬链接。<br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;ln&nbsp;file2&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">home</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">longcheng</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">file2hard</span></div>
<br><span class=Apple-style-span style="WORD-SPACING: 0px; FONT: medium Simsun; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; TEXT-ALIGN: center; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span class=Apple-style-span style="FONT-SIZE: 14px; COLOR: rgb(51,51,51); TEXT-INDENT: 28px; LINE-HEIGHT: 25px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif, 宋体; TEXT-ALIGN: left">下面的程序，是将dir1目录中所有文件，在目录dir2中建立硬链接<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">$mkdir&nbsp;dir2<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ln&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">home</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">longcheng</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">dir1</span><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">&nbsp;/home/longcheng/dir2</span></div>
<br><span class=Apple-style-span style="WORD-SPACING: 0px; FONT: medium Simsun; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; TEXT-ALIGN: center; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span class=Apple-style-span style="FONT-SIZE: 14px; COLOR: rgb(51,51,51); LINE-HEIGHT: 25px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif, 宋体; TEXT-ALIGN: left">
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px; TEXT-INDENT: 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none">如果使用了 ln &#8211;f existingfile newfile,如果newfile已经存在，则无论原来newfile是什么文件，只用当前用户对它有写权限，newfile就成为exisitngfile的硬链接文件。</p>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px; TEXT-INDENT: 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none">尽管硬链接节省空间，也是Linux系统整合文件系统的传统方式，但是存在一下不足之处：（1）不可以在不同文件系统的文件间建立链接（2）只有超级用户才可以为目录创建硬链接。虽然很多树上说root用户可以创建，但是笔者在学习过程中发现即使是root用户也不能创建，我的系统是Redhat，内核2.4、2.6都试过，在其他系统中不知道是不是可以。<br>&nbsp;</p>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px; TEXT-INDENT: 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none"><strong>二、软链接（符号链接）</strong></p>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px; TEXT-INDENT: 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none">软链接克服了硬链接的不足，没有任何文件系统的限制，任何用户可以创建指向目录的符号链接。因而现在更为广泛使用，它具有更大的灵活性，甚至可以跨越不同机器、不同网络对文件进行链接。</p>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px; TEXT-INDENT: 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none">建立软链接，只要在ln后面加上选项 &#8211;s，下面举个例子<br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;$&nbsp;ls&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">il<br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;13058</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">rwx&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;longcheng&nbsp;longcheng&nbsp;</span><span style="COLOR: #000000">48</span><span style="COLOR: #000000">&nbsp;8月&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">16</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">38</span><span style="COLOR: #000000">&nbsp;file1<br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;13059</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">rwx&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;longcheng&nbsp;longcheng&nbsp;</span><span style="COLOR: #000000">57</span><span style="COLOR: #000000">&nbsp;8月&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">16</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">40</span><span style="COLOR: #000000">&nbsp;file2<br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;13059</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">rwx&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;longcheng&nbsp;longcheng&nbsp;</span><span style="COLOR: #000000">57</span><span style="COLOR: #000000">&nbsp;8月&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">16</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">40</span><span style="COLOR: #000000">&nbsp;file2hard<br>&nbsp;&nbsp;&nbsp;$ln&nbsp;&#8211;s&nbsp;file1&nbsp;file1soft<br>&nbsp;&nbsp;&nbsp;$ls&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">il<br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;13058</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">rwx&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;longcheng&nbsp;longcheng&nbsp;</span><span style="COLOR: #000000">48</span><span style="COLOR: #000000">&nbsp;8月&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">16</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">38</span><span style="COLOR: #000000">&nbsp;file1<br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;13059</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">rwx&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;longcheng&nbsp;longcheng&nbsp;</span><span style="COLOR: #000000">57</span><span style="COLOR: #000000">&nbsp;8月&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">16</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">40</span><span style="COLOR: #000000">&nbsp;file2<br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;13059</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">rwx&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;longcheng&nbsp;longcheng&nbsp;</span><span style="COLOR: #000000">57</span><span style="COLOR: #000000">&nbsp;8月&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">16</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">40</span><span style="COLOR: #000000">&nbsp;file2hard<br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;13061</span><span style="COLOR: #000000">&nbsp;lrwxrwxrwx&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;longcheng&nbsp;longcheng&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;8月&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">16</span><span style="COLOR: #000000">:</span><span style="COLOR: #000000">58</span><span style="COLOR: #000000">&nbsp;file1soft</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">file1</span></div>
<br><span class=Apple-style-span style="WORD-SPACING: 0px; FONT: medium Simsun; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; TEXT-ALIGN: center; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span class=Apple-style-span style="FONT-SIZE: 14px; COLOR: rgb(51,51,51); LINE-HEIGHT: 25px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif, 宋体; TEXT-ALIGN: left">
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px; TEXT-INDENT: 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none">从上面链接后的结果可以看出来软链接与硬链接，区别不仅仅是在概念上，在实现上也是不同的。区别：硬链接原文件＆链接文件公用一个inode号，说明他们是同一个文件，而软链接原文件＆链接文件拥有不同的inode号，表明他们是两个不同的文件；在文件属性上软链接明确写出了是链接文件，而硬链接没有写出来，因为在本质上硬链接文件和原文件是完全平等关系；链接数目是不一样的，软链接的链接数目不会增加；文件大小是不一样的，硬链接文件显示的大小是跟原文件是一样的，这用强调，因为是等同的嘛，而这里软链接显示的大小与原文件就不同了，file1大小是48B，而file1soft是5B，这里面的5实际上就是&#8220;file1&#8221;的大小。</p>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px; TEXT-INDENT: 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none">总之，建立软链接就是建立了一个新文件。当访问链接文件时，系统就会发现他是个链接文件，它读取链接文件找到真正要访问的文件。</p>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px; TEXT-INDENT: 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none">在不同系统之间建立软链接、对目录建立链接，这里就不举例了，读者可以自己去尝试，我也是在不断实践中学习的。</p>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px; TEXT-INDENT: 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none">当然软链接也有硬链接没有的缺点，因为链接文件包含有原文件的路径信息，所以当原文件从一个目录下移到其他目录中，再访问链接文件，系统就找不到了～～，而硬链接就没有这个缺陷，你想怎么移就怎么移（呵呵）；还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。</p>
<p style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 1em 0px; TEXT-INDENT: 2em; PADDING-TOP: 0px; LIST-STYLE-TYPE: none">补充一下：可以通过symlink来查看链接文件，可以用 man symlink来学习。<br><br>&nbsp;&nbsp;&nbsp;<span style="FONT-SIZE: 18pt; COLOR: #800000"><strong>（2）linux 软连接和硬链接的区别<br></strong></span>&nbsp;&nbsp;&nbsp;&nbsp; 原文地址：<a href="http://www.cublog.cn/u1/36085/showart_412257.html"><u><font color=#0000ff>http://www.cublog.cn/u1/36085/showart_412257.html</font></u></a><br><br><span class=Apple-style-span style="WORD-SPACING: 0px; FONT: medium Simsun; TEXT-TRANSFORM: none; COLOR: rgb(0,0,0); TEXT-INDENT: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BORDER-COLLAPSE: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp; <span style="FONT-SIZE: 12pt; COLOR: #333333">4点不同 ：&nbsp;<br>&nbsp;&nbsp;&nbsp;（1）软连接可以 跨文件系统 ，硬连接不可以 。实践的方法就是用共享文件把windows下的 aa.txt文本文档连接到linux下/root目录 下 bb,cc . ln -s aa.txt<br>&nbsp;/root/bb 连接成功 。ln aa.txt /root/bb 失败 。<br><br>&nbsp;&nbsp;&nbsp;<span style="FONT-SIZE: 12pt">（2）关于 I节点的问题 。硬连接不管有多少个，都指向的是同一个I节点，会把 结点连接数增加 ，只要结点的连接数不是 0，文件就一直存在 ，不管你删除的是<br><br>源文件还是 连接的文件 。只要有一个存在 ，文件就 存在 （其实也不分什么 源文件连接文件的 ，因为他们指向都是同一个 I节点）。 当你修改源文件或者连接文件<br><br>任何一个的时候 ，其他的 文件都会做同步的修改 。软链接不直接使用i节点号作为文件指针,而是使用文件路径名作为指针。所以 删除连接文件 对源文件无影响，但<br><br>是 删除 源文件，连接文件就会找不到要指向的文件 。软链接有自己的inode,并在磁盘上有一小片空间存放路径名.<br><br>&nbsp;&nbsp;&nbsp;（3）软连接可以对一个不存在的文件名进行连接 。<br><br>&nbsp;&nbsp;&nbsp;（4）软连接可以对目录进行连接。<br><br>&nbsp;&nbsp;&nbsp;备注：I节点 :它是UNIX内部用于描述文件特性的数据结构.我们通常称I节点为文件索引结点(信息结点).i节点 含有关于文件的大部分的重要信 息,包括文件数据块在<br><br>磁盘上的地址.每一个I节点有它自己的标志号,我们称为文件顺序号.I节点包含的信息 1.文件类型 2.文件属主关系 3.文件的访问权限 4.文件的时间截.&nbsp;</span></span></span></p>
</span></span></span></span></span></span></span></span></span></span>
<img src ="http://www.cppblog.com/xingjiegaojue/aggbug/140030.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/xingjiegaojue/" target="_blank">张纶</a> 2011-02-14 14:50 <a href="http://www.cppblog.com/xingjiegaojue/archive/2011/02/14/140030.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>