??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
\0Q空字符
2.Unicode转义字符Q\u + 四个十六q制数字Q?~65535
\u0000Q空字符
3.Ҏ(gu)字符Q?br />
\"Q双引号
\'Q单引号
\\Q反斜线
4.C0控制字符Q?br />
\bQ退?br />
\tQtab
\nQ换?br />
\fQ换?br />
\rQ回?/h4>
]]>
命o或环?/strong>
.
[ ]
^
$
\( \)
\{ \}
?
+
|
( )
vi
X
X
X
X
X
Visual C++
X
X
X
X
X
awk
X
X
X
X
X
X
X
X
sed
X
X
X
X
X
X
Tcl
X
X
X
X
X
X
X
X
X
ex
X
X
X
X
X
X
grep
X
X
X
X
X
X
egrep
X
X
X
X
X
X
X
X
X
fgrep
X
X
X
X
X
perl
X
X
X
X
X
X
X
X
X
]]>
元字W?/em>
描述
匚wM单个字符。例如正则表辑ּr.t匚wq些字符Ԍ(x)rat?em>rut?em>r tQ但是不匚wroot?nbsp;
匚w行结束符。例如正则表辑ּweasel$ 能够匚w字符?He's a weasel"的末,但是不能匚w字符?They are a bunch of weasels."?nbsp;
匚w一行的开始。例如正则表辑ּ^When in能够匚w字符?When in the course of human events"的开始,但是不能匚w"What and When in the"?/em>
匚w0或多个正好在它之前的那个字符。例如正则表辑ּ.*意味着能够匚wL数量的Q何字W?/td>
q是引用府,用来这里列出的q些元字W当作普通的字符来进行匹配。例如正则表辑ּ\$被用来匹配美元符P而不是行,cM的,正则表达?tt>\.用来匚w点字W,而不是Q何字W的通配W?/td>
[c1-c2]
[^c1-c2]
匚w括号中的M一个字W。例如正则表辑ּr[aou]t匚wrat?em>rot?em>rutQ但是不匚wret。可以在括号中用连字符-来指定字W的区间Q例如正则表辑ּ[0-9]可以匚wM数字字符Q还可以制定多个区间Q例如正则表辑ּ[A-Za-z]可以匚wM大小写字母。另一个重要的用法?#8220;排除”Q要惛_?em>除了指定区间之外的字W——也是所谓的补集——在左边的括号和W一个字W之间用^字符Q例如正则表辑ּ[^269A-Z] 匹配除???和所有大写字母之外的M字符?/td>
匚w词(wordQ的开始(\<Q和l束Q\>Q。例如正则表辑ּ\<the能够匚w字符?for the wise"中的"the"Q但是不能匹配字W串"otherwise"中的"the"?strong>注意Q这个元字符不是所有的软g都支持的?/td>
?\( ?\) 之间的表辑ּ定义?#8220;l?#8221;Q?em>groupQ,q且匹配这个表辑ּ的字W保存到一个(f)时区域(一个正则表辑ּ中最多可以保?个)Q它们可以用 \1 ?strong>\9 的符h引用?/td>
两个匹配条件进行逻辑“?#8221;Q?em>OrQ运。例如正则表辑ּ(him|her) 匚w"it belongs to him"?it belongs to her"Q但是不能匹?it belongs to them."?strong>注意Q这个元字符不是所有的软g都支持的?/td>
匚w1或多个正好在它之前的那个字符。例如正则表辑ּ9+匚w9?9?99{?strong>注意Q这个元字符不是所有的软g都支持的?/td>
匚w0?个正好在它之前的那个字符?strong>注意Q这个元字符不是所有的软g都支持的?/td>
\{i,j\}
匚w指定数目的字W,q些字符是在它之前的表达式定义的。例如正则表辑ּA[0-9]\{3\} 能够匚w字符"A"后面跟着正好3个数字字W的Ԍ例如A123、A348{,但是不匹配A1234。而正则表辑ּ[0-9]\{4,6\} 匚wq箋的Q?个?个或?个数字字W?strong>注意Q这个元字符不是所有的软g都支持的?/td>
最单的元字W是点,它能够匹配Q何单个字W(注意?/strong>包括新行W)?/p>
作者:(x)廖雪峊W 来自:(x)SUN
java.util包中包含了一pd重要的集合类。本文将从分析源码入手,深入研究一个集合类的内部结构,以及遍历集合的P代模式的源码实现内幕?/p>
下面我们先简单讨Z个根接口CollectionQ然后分析一个抽象类AbstractList和它的对应Iterator接口Qƈ仔细研究q代子模式的实现原理?/p>
本文讨论的源代码版本是JDK 1.4.2Q因为JDK 1.5在java.util中用了很多泛型代码Qؓ(f)了简化问题,所以我们还是讨?.4版本的代码?/p>
集合cȝҎ(gu)口Collection Collection接口是所有集合类的根cd。它的一个主要的接口Ҏ(gu)是:(x) boolean add(Object c) add()Ҏ(gu)添加一个新元素。注意这个方法会(x)q回一个booleanQ但是返回g是表C添加成功与否。仔l阅读doc可以看到QCollection规定Q如果一个集合拒l添加这个元素,无论M原因Q都必须抛出异常。这个返回DC的意义是add()Ҏ(gu)执行后,集合的内Ҏ(gu)否改变了Q就是元素有无数量,位置{变化)Q这是由具体cd现的。即Q如果方法出错,M(x)抛出异常Q返回g仅表CҎ(gu)执行后这个Collection的内Ҏ(gu)无变化?/p>
cM的还有:(x) boolean addAll(Collection c); Object[] toArray()Ҏ(gu)很简单,把集合{换成数组q回。Object[] toArray(Object[] a)Ҏ(gu)有点复杂了Q首先,q回的Object[]仍然是把集合的所有元素变成的数组Q但是类型和参数a的类型是相同的,比如执行Q?/p>
String[] o = (String[])c.toArray(new String[0]); 得到的o实际cd是String[]?/p>
其次Q如果参数a的大装不下集合的所有元素,q回的将是一个新的数l。如果参数a的大能装下集合的所有元素,则返回的q是aQ但a的内容用集合的元素来填充。尤其要注意的是Q如果a的大比集合元素的个数还多,a后面的部分全部被|ؓ(f)null?/p>
最后一个最重要的方法是iterator()Q返回一个IteratorQP代子Q,用于遍历集合的所有元素?/p>
用Iterator模式实现遍历集合 Iterator模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合cM抽象出来Q从而避免向客户端暴露集合的内部l构?/p>
例如Q如果没有用IteratorQ遍历一个数l的Ҏ(gu)是用烦引:(x) for(int i=0; i<array.size(); i++) { ... get(i) ... } 而访问一个链表(LinkedListQ又必须使用while循环Q?/p>
while((e=e.next())!=null) { ... e.data() ... } 以上两种Ҏ(gu)客户端都必须事先知道集合的内部结构,讉K代码和集合本w是紧耦合Q无法将讉K逻辑从集合类和客L(fng)代码中分d来,每一U集合对应一U遍历方法,客户端代码无法复用?/p>
更恐怖的是,如果以后需要把ArrayList更换为LinkedListQ则原来的客L(fng)代码必须全部重写?/p>
决以上问题,Iterator模式L用同一U逻辑来遍历集合:(x) for(Iterator it = c.iterater(); it.hasNext(); ) { ... } 奥秘在于客户端自w不l护遍历集合?指针"Q所有的内部状态(如当前元素位|,是否有下一个元素)都由Iterator来维护,而这个Iterator由集合类通过工厂Ҏ(gu)生成Q因此,它知道如何遍历整个集合?/p>
客户端从不直接和集合cL交道Q它L控制IteratorQ向它发?向前"Q?向后"Q?取当前元?的命令,可以间接遍历整个集合?/p>
首先看看java.util.Iterator接口的定义:(x) public interface Iterator { 依赖前两个方法就能完成遍历,典型的代码如下:(x) for(Iterator it = c.iterator(); it.hasNext(); ) { 在JDK1.5中,q对上面的代码在语法上作了简化:(x) // Type是具体的cdQ如String?br /> for(Type t : c) { 每一U集合类q回的Iterator具体cd可能不同QArray可能q回ArrayIteratorQSet可能q回SetIteratorQTree可能q回TreeIteratorQ但是它们都实现了Iterator接口Q因此,客户端不兛_到底是哪UIteratorQ它只需要获得这个Iterator接口卛_Q这是面向对象的威力?/p>
Iterator源码剖析 让我们来看看AbstracyList如何创徏Iterator。首先AbstractList定义了一个内部类Qinner classQ:(x) private class Itr implements Iterator { 而iterator()Ҏ(gu)的定义是Q?/p>
public Iterator iterator() { 因此客户端不知道它通过Iterator it = a.iterator();所获得的Iterator的真正类型?/p>
现在我们兛_的是q个x为private的ItrcL如何实现遍历AbstractList的:(x) private class Itr implements Iterator { ItrcM?个int变量Q还有一个隐含的AbstractList的引用)来实现遍历,cursor是下一ơnext()调用时元素的位置Q第一ơ调用next()返回烦引ؓ(f)0的元素。lastRet记录上一ơ游标所在位|,因此它L比cursor??/p>
变量cursor和集合的元素个数军_hasNext()Q?/p>
public boolean hasNext() { Ҏ(gu)next()q回的是索引为cursor的元素,然后修改cursor和lastRet的|(x) public Object next() { expectedModCount表示期待的modCount|用来判断在遍历过E中集合是否被修改过。AbstractList包含一个modCount变量Q它的初始值是0Q当集合每被修改一ơ时Q调用addQremove{方法)QmodCount?。因此,modCount如果不变Q表C集合内Ҏ(gu)被修攏V?/p>
Itr初始化时用expectedModCount记录集合的modCount变量Q此后在必要的地方它?x)检modCount的|(x) final void checkForComodification() { 如果modCount与一开始记录在expectedModeCount中的g{,说明集合内容被修改过Q此时会(x)抛出ConcurrentModificationException?/p>
q个ConcurrentModificationException是RuntimeExceptionQ不要在客户端捕获它。如果发生此异常Q说明程序代码的~写有问题,应该仔细查代码而不是在catch中忽略它?/p>
但是调用Iterator自n的remove()Ҏ(gu)删除当前元素是完全没有问题的Q因为在q个Ҏ(gu)中会(x)自动同步expectedModCount和modCount的|(x) public void remove() { 要确保遍历过E顺利完成,必须保证遍历q程中不更改集合的内容(Iterator的remove()Ҏ(gu)除外Q,因此Q确保遍历可靠的原则是只在一个线E中使用q个集合Q或者在多线E中寚w历代码进行同步?/p>
最后给个完整的CZQ?/p>
Collection c = new ArrayList(); 如果你把W一行代码的ArrayList换成LinkedList或VectorQ剩下的代码不用改动一行就能编译,而且功能不变Q这是针对抽象~程的原则:(x)对具体类的依赖性最?/p>
前言Q关于find命o
׃findh强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系l中含有|络文gpȝ( NFS)Qfind命o在该文gpȝ中同h效,只你h相应的权限?/p>
在运行一个非常消耗资源的find命oӞ很多人都們于把它放在后台执行,因ؓ(f)遍历一个大的文件系l可能会(x)p很长的时?q里是指30G字节以上的文件系l??/p>
一、find 命o格式
2、find命o的参敎ͼ
3、find命o选项 另外,下面三个的区?
4、用exec或ok来执行shell命o 在有些操作系l中只允?exec选项执行诸如l s或ls -lq样的命令。大多数用户使用q一选项是ؓ(f)了查找旧文gq删除它们。徏议在真正执行rm命o删除文g之前Q最好先用ls命o看一下,认它们是所要删除的文g?/p>
exec选项后面跟随着所要执行的命o或脚本,然后是一对儿{ }Q一个空格和一个\Q最后是一个分受ؓ(f)了用exec选项Q必要同时使用print选项。如果验证一下find命oQ会(x)发现该命令只输出从当前\径v的相对\径及文g名?/p>
例如Qؓ(f)了用ls -l命o列出所匚w到的文gQ可以把ls -l命o攑֜find命o?exec选项?/p>
上面的例子中Qfind命o匚wC当前目录下的所有普通文Ӟq在-exec选项中用ls -l命o它们列出?br />?logs目录中查找更Ҏ(gu)间在5日以前的文gq删除它们:(x)
CQ?/b>在shell中用M方式删除文g之前Q应当先查看相应的文Ӟ一定要心Q当使用诸如mv或rm命oӞ可以使用-exec选项的安全模式。它?yu)在?gu)个匹配到的文件进行操作之前提CZ?/p>
在下面的例子中, find命o在当前目录中查找所有文件名?LOGl尾、更Ҏ(gu)间在5日以上的文gQƈ删除它们Q只不过在删除之前先l出提示?/p>
二、find命o的例子;
3、ؓ(f)了查扄l中所有文仉度ؓ(f)0的普通文Ӟq列出它们的完整路径Q?br />
4、查?var/logs目录中更Ҏ(gu)间在7日以前的普通文Ӟq在删除之前询问它们Q?br />
5、ؓ(f)了查扄l中所有属于rootl的文gQ?br />
6、find命o删除当目录中访问时间在7日以来、含有数字后~的admin.log文g?br />
7、ؓ(f)了查扑ֽ前文件系l中的所有目录ƈ排序Q?br />
8、ؓ(f)了查扄l中所有的rmt带讑֤Q?br />
三、xargs 在用find命o?exec选项处理匚w到的文gӞ find命o所有匹配到的文件一起传递给exec执行。但有些pȝ对能够传递给exec的命令长度有限制Q这样在find命oq行几分钟之后,׃(x)出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这是xargs命o的用处所在,特别是与find命o一起用?/p>
find命o把匹配到的文件传递给xargs命oQ而xargs命o每次只获取一部分文g而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文gQ然后是下一批,q如此l下厅R?/p>
在有些系l中Q?exec选项?x)?f)处理每一个匹配到的文件而发起一个相应的q程Qƈ非将匚w到的文g全部作ؓ(f)参数一ơ执行;q样在有些情况下׃(x)出现q程q多Q系l性能下降的问题,因而效率不高; 而用xargs命o则只有一个进E。另外,在用xargs命oӞI竟是一ơ获取所有的参数Q还是分批取得参敎ͼ以及每一ơ获取参数的数目都会(x)Ҏ(gu)该命令的选项及系l内怸相应的可调参数来定?/p>
来看看xargs命o是如何同find命o一起用的Qƈl出一些例子?/p>
下面的例子查扄l中的每一个普通文Ӟ然后使用xargs命o来测试它们分别属于哪cL?/p>
在整个系l中查找内存信息转储文g(core dump) Q然后把l果保存?tmp/core.log 文g中:(x)
用grep命o在所有的普通文件中搜烦hostnameq个词:(x)
四、find 命o的参?br />
1、用name选项 可以使用某种文g名模式来匚w文gQ记住要用引号将文g名模式引h?/p>
不管当前路径是什么,如果惌在自q根目?HOME中查找文件名W合*.txt的文Ӟ使用~作ؓ(f) 'pathname'参数QL号~代表了你?HOME目录?/p>
2、用perm选项 如在当前目录下查找文件权限位?55的文Ӟx件属d以读、写、执行,其他用户可以诅R执行的文gQ可以用Q?/p>
q有一U表达方法:(x)在八q制数字前面要加一个横?Q表C都匚wQ如-007q当于777Q?006相当?66
-perm mode:文g许可正好W合mode -perm +mode:文g许可部分W合mode -perm -mode: 文g许可完全W合mode
3、忽略某个目?br />
如果希望?apps目录下查找文Ӟ但不希望?apps/bin目录下查找,可以用:(x)
比如要在/usr/sam目录下查找不在dir1子目录之内的所有文?/p>
-path "/usr/sam" -prune -o -print ?-path "/usr/sam" -a -prune -o q个表达式组合特例可以用伪码写ؓ(f)
圆括可C辑ּ的结合?br /> 查找某一定文gQ?name{选项加在-o 之后
按文件属L找文Ӟ如在$HOME目录中查找文件属Mؓ(f)sam的文Ӟ可以用:(x)
?etc目录下查找文件属Mؓ(f)uucp的文Ӟ(x)
Z查找属主帐户已经被删除的文gQ可以?nouser选项。这样就能够扑ֈ那些属主?etc/passwd文g中没有有效帐L(fng)文g。在使用-nouser选项Ӟ不必l出用户名; find命o能够Z完成相应的工作?/p>
例如Q希望在/home目录下查找所有的q类文gQ可以用Q?br />
像user和nouser选项一P针对文g所属于的用L(fng)Q?find命o也具有同L(fng)选项Qؓ(f)了在/apps目录下查扑ֱ于gem用户l的文gQ可以用Q?/p>
要查找没有有效所属用L(fng)的所有文Ӟ可以使用nogroup选项。下面的find命o从文件系l的根目录处查找q样的文?/p>
如果希望按照更改旉来查找文Ӟ可以使用mtime,atime或ctime选项。如果系l突然没有可用空间了Q很有可能某一个文件的长度在此期间增长q速,q时可以用mtime选项来查找这L(fng)文g?/p>
用减?来限定更Ҏ(gu)间在距今n日以内的文gQ而用加号+来限定更Ҏ(gu)间在距今n日以前的文g?/p>
希望在系l根目录下查找更Ҏ(gu)间在5日以内的文gQ可以用Q?/p>
Z?var/adm目录下查找更Ҏ(gu)间在3日以前的文gQ可以用Q?/p>
8、查找比某个文g新或旧的文g
其中Q!是逻辑非符受?/p>
查找更改旉比文件samC比文件temp旧的文gQ?/p>
例:(x)有两个文?/p>
查找更改旉在比temp文g新的文gQ?/p>
?etc目录下查找所有的目录Q可以用Q?/p>
在当前目录下查找除目录以外的所有类型的文gQ可以用Q?br /> ?etc目录下查找所有的W号链接文gQ可以用
可以按照文g长度来查找文Ӟq里所指的文g长度既可以用块(blockQ来计量Q也可以用字节来计量。以字节计量文g长度的表辑Ş式ؓ(f)N cQ以块计量文仉度只用数字表C即可?/p>
在按照文仉度查找文件时Q一般用这U以字节表示的文仉度,在查看文件系l的大小Q因时用块来计量更Ҏ(gu)转换?br />在当前目录下查找文g长度大于1 M字节的文Ӟ(x) ?home/apache目录下查找文仉度恰好ؓ(f)100字节的文Ӟ(x)
在当前目录下查找长度过10块的文gQ一块等?12字节Q:(x)
11、用depth选项 在下面的例子中, find命o从文件系l的根目录开始,查找一个名为CON.FILE的文件?/p>
它将首先匚w所有的文g然后再进入子目录中查找?/p>
在当前的文gpȝ中查找文Ӟ不进入其他文件系l)Q可以用find命o的mount选项?/p>
从当前目录开始查找位于本文gpȝ中文件名以XCl尾的文Ӟ(x)
许多人可能不明白xZ么要煌Ӏ其实这好比汽车刚买的时候需要磨合一栗x振膜本n在制造过E中存在内部应力,在粘l音圈和固定在骨架上时又产生了装配应力,我们所说的煲x是使这些应力逐步消失Q振膜逐步化发出好声的过E?如果一开始就好好的“煲”一下耛_Q那么就?x)把它的震膜逐渐弄松Q这样再听音乐时Q震膜震动v来就?x)非常的自如Q音质也较先前提高不。所以煲x是很有必要的?/P>
煲x需要时间和一定的技巧。首先,你需要一个可用来长时间放音的x。其ơ音源中要有频响范围很宽、动态效果舒~、层ơ清晰、高中低韛_成分适中的音乐有q样效果的音乐要比一般音乐“煲”v来效果更明显。还有一点就是音源输出功率一定要够大Q比如要“煲”DT880׃能用普通随w听QDT880?50Ƨ的Q不配xҎ(gu)带不v来,q怎么让震膜松动呢Q一般来_(d)随n听只适合耛_和一些低Lx使用。一般而言Q如用计机声卡和收x“煲”耛_的话Q需要比较长一点的旉。而用输出功率很大的CD随n听来“煲”,旉要短一些。用调频褒也是最方便的?/P>
在这里给大家推荐几种煲的Ҏ(gu)Q?/P>
使用调频攉机,把收x调到一个没有信L(fng)频道Q音量控制在20以下。这个时候所发出的兹兹的声音相当于我们通常煲机所用的白噪音的。新x买回来大概需要每天煲?个小Ӟ持箋一周到二周。虽然这U方法褒的方法比较慢Q但是比较安全的。v码不至于因ؓ(f)操作不当把x煲坏?/P>
使用CD机或者MP3播放不同风格的音乐,一般来用CD机播N?0几个时左右Q这样长的播放时间容易降低CD机的寿命。而如果用MP3播放׃其本w构造的优势Q便可以长时间的播放曲子。很适合煲x。刚开始用L一些的音乐Q在较低音量下让x先舒~?0-30时Q然后用普通的音乐Q摇滚、舞曲除外)在中{音量状态褒100-200时Q如果这时你听着高音不刺耳了Q变得圆润自Ӟ中音温暖亲切Q低频再也不是成一团的轰隆隆,而充满细节,那基本上是大功告成了?/P>
另外q有些h褒x喜欢用音频设备,例如计算机音响等。虽然这样可以用一些特定的软g和特定的音碟。煲x煲的比较专业。但编不推荐初学者用这Ҏ(gu)。因为现在返修的很多x都是在褒机的时候方法不当坏掉的。如果你w边有比较专业的人士Q那你到可以试q类Ҏ(gu)。一般就是用白噪音的和_红噪音的碟来交替煲。还有些是用一些特定的频率发生器来煲的。用q种Ҏ(gu)褒的好处是可以使x快速进入状态。缺点当然是如果操作不当容易把x煲坏?/P>
在这l大家推荐一些音乐。在人声来说。蔡琴的和王菲的声音都不错。推荐曲目有 渡口 Q?天空 。色?布莱曹{月亮女》恩雅的音乐也不错。另外腾格尔的hC气十뀁爆发力极强也很适合煲机推荐曲目有天堂。类D鹰的加z旅馆比较经典的曲子也很合适。阎学敏《炎黄第一鼓》也是煲机的好碟Q另外像惠威的试音碟曲目覆盖面很q?也非常合适用来煲x?/P>
]]>
]]>
深入探讨Iterator模式
boolean remove(Object o);
boolean removeAll(Collection c);
boolean remainAll(Collection c);
boolean hasNext();
Object next();
void remove();
}
Object o = it.next();
// 对o的操?..
}
// 对t的操?..
}
...
}
return new Itr();
}
int cursor = 0;
int lastRet = -1;
int expectedModCount = modCount;
}
return cursor != size();
}
checkForComodification();
try {
Object next = get(cursor);
lastRet = cursor++;
return next;
} catch(IndexOutOfBoundsException e) {
checkForComodification();
throw new NoSuchElementException();
}
}
if (modCount != expectedModCount)
throw new ConcurrentModificationException();
}
...
AbstractList.this.remove(lastRet);
...
// 在调用了集合的remove()Ҏ(gu)之后重新讄了expectedModCountQ?br /> expectedModCount = modCount;
...
}
c.add("abc");
c.add("xyz");
for(Iterator it = c.iterator(); it.hasNext(); ) {
String s = (String)it.next();
System.out.println(s);
}
]]>
1、find命o的一般Ş式ؓ(f)Q?br />
使用findӞ只要把想要的操作写在一个文仉Q就可以用exec来配合find查找Q很方便?/p>
< rm ... ./conf/httpd.conf > ? n
sam:x:501:501::/usr/sam:/bin/bash
1、查扑ֽ前用户主目录下的所有文Ӟ(x)
下面两种Ҏ(gu)都可以?/p>
2、让当前目录中文件属d有读、写权限Qƈ且文件所属组的用户和其他用户hL限的文gQ?br />
该命令只查三位数字,所以相应文件的后缀不要过999。先建几个admin.log*的文?Q才能用下面这个命?/p>
rm { } \;
< rm ... ./admin.log001 > ? n
< rm ... ./admin.log002 > ? n
< rm ... ./admin.log042 > ? n
< rm ... ./admin.log942 > ? n
xargs - build and execute command lines from standard input
# cat /temp/core.log
./file6
./httpd1.conf:# different IP addresses or hostnames and have them handled by the
./httpd1.conf:# VirtualHost: If you want to maintain multiple domains/hostnames
on your
./httpd1.conf:# different IP addresses or hostnames and have them handled by the
./httpd1.conf:# VirtualHost: If you want to maintain multiple domains/hostnames
on your
下面是find一些常用参数的例子Q有用到的时候查查就行了Q像上面前几个脓(chung)子,都用C其中的的一些参敎ͼ也可以用man或查看论坛里其它贴子有find的命令手?/p>
文g名选项是find命o最常用的选项Q要么单独用该选项Q要么和其他选项一起用?/p>
按照文g权限模式?perm选项,按文件权限模式来查找文g的话。最好用八q制的权限表C法?/p>
如果在查找文件时希望忽略某个目录Q因Z知道那个目录中没有你所要查扄文gQ那么可以?prune选项来指出需要忽略的目录。在使用-prune选项时要当心Q因为如果你同时使用?depth选项Q那?prune选项׃(x)被find命o忽略?/p>
4、用find查找文g的时候怎么避开某个文g目录
-print 的简写表辑ּ按顺序求? -a ?-o 都是短\求|?shell ?&& ?|| cM如果 -path "/usr/sam" 为真Q则求?-prune , -prune q回真,与逻辑表达式ؓ(f)真;否则不求?-pruneQ与逻辑表达式ؓ(f)假。如?-path "/usr/sam" -a -prune 为假Q则求?-print Q?printq回真,或逻辑表达式ؓ(f)真;否则不求?-printQ或逻辑表达式ؓ(f)真?/p>
-prune
else
-print
5、用user和nouser选项
6、用group和nogroup选项
7、按照更Ҏ(gu)间或讉K旉{查找文?br />
如果希望查找更改旉比某个文件新但比另一个文件旧的所有文Ӟ可以使用-newer选项。它的一般Ş式ؓ(f)Q?/p>
9、用type选项
10、用size选项
在用find命oӞ可能希望先匹配所有的文gQ再在子目录中查找。用depth选项可以find命oq样做。这样做的一个原因就是,当在使用find命o向磁带上备䆾文gpȝӞ希望首先备䆾所有的文gQ其ơ再备䆾子目录中的文件?/p>
12、用mount选项
]]>class Address
{
}; // where someone lives
class PhoneNumber
{
};
class Person
{
public:
private:
std::string name; // composed object
Address address; // ditto
PhoneNumber voiceNumber; // ditto
PhoneNumber faxNumber; // ditto
};
来自Q?a >http://dev.yesky.com
]]>
W一句话是:(x)优秀是一U习(fn)惯?nbsp;