<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>王永杰的Blog(博客)</title>
	<atom:link href="http://wyj.zhuwo.info/feed/" rel="self" type="application/rss+xml" />
	<link>http://wyj.zhuwo.info</link>
	<description>Keep thinking, seeking and practicing!</description>
	<lastBuildDate>Wed, 11 Aug 2010 06:09:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Linux文件查找命令find, xargs详述 (zz)</title>
		<link>http://wyj.zhuwo.info/2010/08/linux%e6%96%87%e4%bb%b6%e6%9f%a5%e6%89%be%e5%91%bd%e4%bb%a4find-xargs%e8%af%a6%e8%bf%b0-zz/</link>
		<comments>http://wyj.zhuwo.info/2010/08/linux%e6%96%87%e4%bb%b6%e6%9f%a5%e6%89%be%e5%91%bd%e4%bb%a4find-xargs%e8%af%a6%e8%bf%b0-zz/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 06:09:54 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[linux应用]]></category>
		<category><![CDATA[技术为本]]></category>
		<category><![CDATA[文摘转贴]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[xargs]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=197</guid>
		<description><![CDATA[总结：zhy2111314 来自：LinuxSir.Org 整理：北南南北 摘要： 本文是find 命令的详细说明，可贵的是针对参数举了很多的实例，大量的例证，让初学者更为容易理解；本文是zhyfly兄贴在论坛中；我对本文进行了再次整理，为方便大家阅读； 版权声明 本文是zhyfly兄贴在LinuxSir.Org 的一个帖子而整理出来的，如果您对版权有疑问，请在本帖后面跟帖。谢谢；本文的HTML版本由北南南北整理；修改了整篇文档的全角及说明文字中的单词中每个字母空格的问题；为标题加了编号，方便大家阅读； 前言：关于find命令 由于find具有强大的功能，所以它的选项也很多，其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS)，find命令在该文件系统中同样有效，只你具有相应的权限。 在运行一个非常消耗资源的find命令时，很多人都倾向于把它放在后台执行，因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。 一、find 命令格式 1、find命令的一般形式为； find pathname -options [-print -exec -ok ...] 2、find命令的参数； pathname: find命令所查找的目录路径。例如用.来表示当前目录，用/来表示系统根目录。 -print： find命令将匹配的文件输出到标准输出。 -exec： find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {  } \;，注意{   }和\；之间的空格。 -ok： 和-exec的作用相同，只不过以一种更为安全的模式来执行该参数所给出的shell命令，在执行每一个命令之前，都会给出提示，让用户来确定是否执行。 3、find命令选项 -name 按照文件名查找文件。 -perm &#8230; <a href="http://wyj.zhuwo.info/2010/08/linux%e6%96%87%e4%bb%b6%e6%9f%a5%e6%89%be%e5%91%bd%e4%bb%a4find-xargs%e8%af%a6%e8%bf%b0-zz/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><!-- begin content --><strong>总结：</strong><a href="http://www.linuxsir.org/bbs/member.php?u=57037" target="_blank">zhy2111314</a><br />
<strong>来自：</strong><a href="http://www.linuxsir.org/main/?q=node/137">LinuxSir.Org</a><br />
<strong>整理：</strong>北南南北<br />
<strong>摘要：</strong> 本文是find 命令的详细说明，可贵的是针对参数举了很多的实例，大量的例证，让初学者更为容易理解；本文是zhyfly兄贴在论坛中；我对本文进行了再次整理，为方便大家阅读；</p>
<p><strong><span id="more-197"></span></strong><br />
<span style="font-size: medium;"><strong><br />
版权声明<br />
</strong></span></p>
<p>本文是zhyfly兄贴在LinuxSir.Org 的一个帖子而整理出来的，如果您对版权有疑问，请在本帖后面跟帖。谢谢；本文的HTML版本由北南南北整理；修改了整篇文档的全角及说明文字中的单词中每个字母空格的问题；为标题加了编号，方便大家阅读；</p>
<p><span style="font-size: medium;"><strong>前言：关于find命令</strong></span></p>
<p>由于find具有强大的功能，所以它的选项也很多，其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS)，find命令在该文件系统中同样有效，只你具有相应的权限。</p>
<p>在运行一个非常消耗资源的find命令时，很多人都倾向于把它放在后台执行，因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。</p>
<p><span style="font-size: medium;"><strong><br />
一、find 命令格式<br />
</strong></span></p>
<p><span style="font-size: small;"><strong><br />
1、find命令的一般形式为；<br />
</strong></span></p>
<div><code>find pathname -options [-print -exec -ok ...]</code></div>
<p><span style="font-size: small;"><strong><br />
2、find命令的参数；<br />
</strong></span></p>
<div><code>pathname: find命令所查找的目录路径。例如用.来表示当前目录，用/来表示系统根目录。<br />
-print： find命令将匹配的文件输出到标准输出。<br />
-exec： find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {  } \;，注意{   }和\；之间的空格。<br />
-ok： 和-exec的作用相同，只不过以一种更为安全的模式来执行该参数所给出的shell命令，在执行每一个命令之前，都会给出提示，让用户来确定是否执行。</code></div>
<p><span style="font-size: small;"><strong><br />
3、find命令选项<br />
</strong></span></p>
<div>
<p><code>-name</code></p>
<p>按照文件名查找文件。</p>
<p>-perm<br />
按照文件权限来查找文件。</p>
<p>-prune<br />
使用这一选项可以使find命令不在当前指定的目录中查找，如果同时使用-depth选项，那么-prune将被find命令忽略。</p>
<p>-user<br />
按照文件属主来查找文件。</p>
<p>-group<br />
按照文件所属的组来查找文件。</p>
<p>-mtime -n +n<br />
按照文件的更改时间来查找文件， &#8211; n表示文件更改时间距现在n天以内，+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项，但它们都和-m time选项。</p>
<p>-nogroup<br />
查找无有效所属组的文件，即该文件所属的组在/etc/groups中不存在。</p>
<p>-nouser<br />
查找无有效属主的文件，即该文件的属主在/etc/passwd中不存在。<br />
-newer file1 ! file2</p>
<p>查找更改时间比文件file1新但比文件file2旧的文件。<br />
-type</p>
<p>查找某一类型的文件，诸如：</p>
<p>b &#8211; 块设备文件。<br />
d &#8211; 目录。<br />
c &#8211; 字符设备文件。<br />
p &#8211; 管道文件。<br />
l &#8211; 符号链接文件。<br />
f &#8211; 普通文件。</p>
<p>-size n：[c] 查找文件长度为n块的文件，带有c时表示文件长度以字节计。<br />
-depth：在查找文件时，首先查找当前目录中的文件，然后再在其子目录中查找。<br />
-fstype：查找位于某一类型文件系统中的文件，这些文件系统类型通常可以在配置文件/etc/fstab中找到，该配置文件中包含了本系统中有关文件系统的信息。</p>
<p>-mount：在查找文件时不跨越文件系统mount点。<br />
-follow：如果find命令遇到符号链接文件，就跟踪至链接所指向的文件。<br />
-cpio：对匹配的文件使用cpio命令，将这些文件备份到磁带设备中。</p>
</div>
<p>另外,下面三个的区别:</p>
<div><code> -amin n<br />
查找系统中最后N分钟访问的文件</code></p>
<p>-atime n<br />
查找系统中最后n*24小时访问的文件</p>
<p>-cmin n<br />
查找系统中最后N分钟被改变文件状态的文件</p>
<p>-ctime n<br />
查找系统中最后n*24小时被改变文件状态的文件</p>
<p>-mmin n<br />
查找系统中最后N分钟被改变文件数据的文件</p>
<p>-mtime n<br />
查找系统中最后n*24小时被改变文件数据的文件</p>
</div>
<p><span style="font-size: small;"><strong><br />
4、使用exec或ok来执行shell命令<br />
</strong></span></p>
<p>使用find时，只要把想要的操作写在一个文件里，就可以用exec来配合find查找，很方便的</p>
<p>在有些操作系统中只允许-exec选项执行诸如l s或ls -l这样的命令。大多数用户使用这一选项是为了查找旧文件并删除它们。建议在真正执行rm命令删除文件之前，最好先用ls命令看一下，确认它们是所要删除的文件。</p>
<p>exec选项后面跟随着所要执行的命令或脚本，然后是一对儿{ }，一个空格和一个\，最后是一个分号。为了使用exec选项，必须要同时使用print选项。如果验证一下find命令，会发现该命令只输出从当前路径起的相对路径及文件名。</p>
<p>例如：为了用ls -l命令列出所匹配到的文件，可以把ls -l命令放在find命令的-exec选项中</p>
<div><code># find . -type f -exec ls -l {  } \;<br />
-rw-r--r--    1 root     root        34928 2003-02-25  ./conf/httpd.conf<br />
-rw-r--r--    1 root     root        12959 2003-02-25  ./conf/magic<br />
-rw-r--r--    1 root     root          180 2003-02-25  ./conf.d/README</code></div>
<p>上面的例子中，find命令匹配到了当前目录下的所有普通文件，并在-exec选项中使用ls -l命令将它们列出。<br />
在/logs目录中查找更改时间在5日以前的文件并删除它们：</p>
<div><code>$ find logs -type f -mtime +5 -exec rm {  } \;</code></div>
<p><strong>记住：</strong>在shell中用任何方式删除文件之前，应当先查看相应的文件，一定要小心！当使用诸如mv或rm命令时，可以使用-exec选项的安全模式。它将在对每个匹配到的文件进行操作之前提示你。</p>
<p>在下面的例子中， find命令在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件，并删除它们，只不过在删除之前先给出提示。</p>
<div><code>$ find . -name "*.conf"  -mtime +5 -ok rm {  } \;<br />
&lt; rm ... ./conf/httpd.conf &gt; ? n</code></div>
<p>按y键删除文件，按n键不删除。</p>
<p>任何形式的命令都可以在-exec选项中使用。</p>
<p>在下面的例子中我们使用grep命令。find命令首先匹配所有文件名为“ passwd*”的文件，例如passwd、passwd.old、passwd.bak，然后执行grep命令看看在这些文件中是否存在一个sam用户。</p>
<div><code># find /etc -name "passwd*" -exec grep "sam" {  } \;<br />
sam:x:501:501::/usr/sam:/bin/bash</code></div>
<p><span style="font-size: medium;"><strong><br />
二、find命令的例子；<br />
</strong></span></p>
<p><span style="font-size: small;"><strong><br />
1、查找当前用户主目录下的所有文件：<br />
</strong></span></p>
<p>下面两种方法都可以使用</p>
<div><code>$ find $HOME -print<br />
$ find ~ -print</code></div>
<p><span style="font-size: small;"><strong><br />
2、让当前目录中文件属主具有读、写权限，并且文件所属组的用户和其他用户具有读权限的文件；<br />
</strong></span></p>
<div><code>$ find . -type f -perm 644 -exec ls -l {  } \;</code></div>
<p><span style="font-size: small;"><strong><br />
3、为了查找系统中所有文件长度为0的普通文件，并列出它们的完整路径；<br />
</strong></span></p>
<div><code>$ find / -type f -size 0 -exec ls -l {  } \;</code></div>
<p><span style="font-size: small;"><strong><br />
4、查找/var/logs目录中更改时间在7日以前的普通文件，并在删除之前询问它们；<br />
</strong></span></p>
<div><code>$ find /var/logs -type f -mtime +7 -ok rm {  } \;</code></div>
<p><span style="font-size: small;"><strong><br />
5、为了查找系统中所有属于root组的文件；<br />
</strong></span></p>
<div><code>$find . -group root -exec ls -l {  } \;<br />
-rw-r--r--    1 root     root          595 10月 31 01:09 ./fie1</code></div>
<p><span style="font-size: small;"><strong><br />
6、find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.log文件。<br />
</strong></span></p>
<p>该命令只检查三位数字，所以相应文件的后缀不要超过999。先建几个admin.log*的文件 ，才能使用下面这个命令</p>
<div><code>$ find . -name "admin.log[0-9][0-9][0-9]" -atime -7  -ok<br />
rm {  } \;<br />
&lt; rm ... ./admin.log001 &gt; ? n<br />
&lt; rm ... ./admin.log002 &gt; ? n<br />
&lt; rm ... ./admin.log042 &gt; ? n<br />
&lt; rm ... ./admin.log942 &gt; ? n</code></div>
<p><span style="font-size: small;"><strong><br />
7、为了查找当前文件系统中的所有目录并排序；<br />
</strong></span></p>
<div><code>$ find . -type d | sort</code></div>
<p><span style="font-size: small;"><strong><br />
8、为了查找系统中所有的rmt磁带设备；<br />
</strong></span></p>
<div><code>$ find /dev/rmt -print</code></div>
<p><span style="font-size: medium;"><strong><br />
三、xargs<br />
</strong></span></p>
<p>xargs &#8211; build and execute command lines from standard input</p>
<p>在使用find命令的-exec选项处理匹配到的文件时，  find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制，这样在find命令运行几分钟之后，就会出现 溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在，特别是与find命令一起使用。</p>
<p>find命令把匹配到的文件传递给xargs命令，而xargs命令每次只获取一部分文件而不是全部，不像-exec选项那样。这样它可以先处理最先获取的一部分文件，然后是下一批，并如此继续下去。</p>
<p>在有些系统中，使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程，并非将匹配到的文件全部作为参数一次执行；这样在有些情况下就会出现进程过多，系统性能下降的问题，因而效率不高；</p>
<p>而使用xargs命令则只有一个进程。另外，在使用xargs命令时，究竟是一次获取所有的参数，还是分批取得参数，以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。</p>
<p>来看看xargs命令是如何同find命令一起使用的，并给出一些例子。</p>
<p>下面的例子查找系统中的每一个普通文件，然后使用xargs命令来测试它们分别属于哪类文件</p>
<div><code>#find . -type f -print | xargs file<br />
./.kde/Autostart/Autorun.desktop: UTF-8 Unicode English text<br />
./.kde/Autostart/.directory:      ISO-8859 text\<br />
......</code></div>
<p>在整个系统中查找内存信息转储文件(core dump) ，然后把结果保存到/tmp/core.log 文件中：</p>
<div><code>$ find / -name "core" -print | xargs echo "" &gt;/tmp/core.log</code></div>
<p>上面这个执行太慢，我改成在当前目录下查找</p>
<div><code>#find . -name "file*" -print | xargs echo "" &gt; /temp/core.log<br />
# cat /temp/core.log<br />
./file6</code></div>
<p>在当前目录下查找所有用户具有读、写和执行权限的文件，并收回相应的写权限：</p>
<div><code># ls -l<br />
drwxrwxrwx    2 sam      adm          4096 10月 30 20:14 file6<br />
-rwxrwxrwx    2 sam      adm             0 10月 31 01:01 http3.conf<br />
-rwxrwxrwx    2 sam      adm             0 10月 31 01:01 httpd.conf</code></p>
<p># find . -perm -7 -print | xargs chmod o-w<br />
# ls -l<br />
drwxrwxr-x    2 sam      adm          4096 10月 30 20:14 file6<br />
-rwxrwxr-x    2 sam      adm             0 10月 31 01:01 http3.conf<br />
-rwxrwxr-x    2 sam      adm             0 10月 31 01:01 httpd.conf</p>
</div>
<p>用grep命令在所有的普通文件中搜索hostname这个词：</p>
<div><code># find . -type f -print | xargs grep "hostname"<br />
./httpd1.conf:#     different IP addresses or hostnames and have them handled by the<br />
./httpd1.conf:# VirtualHost: If you want to maintain multiple domains/hostnames<br />
on your</code></div>
<p>用grep命令在当前目录下的所有普通文件中搜索hostnames这个词：</p>
<div><code># find . -name \* -type f -print | xargs grep "hostnames"<br />
./httpd1.conf:#     different IP addresses or hostnames and have them handled by the<br />
./httpd1.conf:# VirtualHost: If you want to maintain multiple domains/hostnames<br />
on your</code></div>
<p>注意，在上面的例子中， \用来取消find命令中的*在shell中的特殊含义。</p>
<p>find命令配合使用exec和xargs可以使用户对所匹配到的文件执行几乎所有的命令。</p>
<p><span style="font-size: medium;"><strong><br />
四、find 命令的参数<br />
</strong></span></p>
<p>下面是find一些常用参数的例子，有用到的时候查查就行了，像上面前几个贴子，都用到了其中的的一些参数，也可以用man或查看论坛里其它贴子有find的命令手册</p>
<p><span style="font-size: small;"><strong><br />
1、使用name选项<br />
</strong></span></p>
<p>文件名选项是find命令最常用的选项，要么单独使用该选项，要么和其他选项一起使用。</p>
<p>可以使用某种文件名模式来匹配文件，记住要用引号将文件名模式引起来。</p>
<p>不管当前路径是什么，如果想要在自己的根目录$HOME中查找文件名符合*.txt的文件，使用~作为 &#8216;pathname&#8217;参数，波浪号~代表了你的$HOME目录。</p>
<div><code>$ find ~ -name "*.txt" -print</code></div>
<p>想要在当前目录及子目录中查找所有的‘ *.txt’文件，可以用：</p>
<div><code>$ find . -name "*.txt" -print</code></div>
<p>想要的当前目录及子目录中查找文件名以一个大写字母开头的文件，可以用：</p>
<div><code>$ find . -name "[A-Z]*" -print</code></div>
<p>想要在/etc目录中查找文件名以host开头的文件，可以用：</p>
<div><code>$ find /etc -name "host*" -print</code></div>
<p>想要查找$HOME目录中的文件，可以用：</p>
<div><code>$ find ~ -name "*" -print 或find . -print</code></div>
<p>要想让系统高负荷运行，就从根目录开始查找所有的文件。</p>
<div><code>$ find / -name "*" -print</code></div>
<p>如果想在当前目录查找文件名以两个小写字母开头，跟着是两个数字，最后是.txt的文件，下面的命令就能够返回名为ax37.txt的文件：</p>
<div><code>$find . -name "[a-z][a-z][0--9][0--9].txt" -print</code></div>
<p><span style="font-size: small;"><strong><br />
2、用perm选项<br />
</strong></span></p>
<p>按照文件权限模式用-perm选项,按文件权限模式来查找文件的话。最好使用八进制的权限表示法。</p>
<p>如在当前目录下查找文件权限位为755的文件，即文件属主可以读、写、执行，其他用户可以读、执行的文件，可以用：</p>
<div><code>$ find . -perm 755 -print</code></div>
<p>还有一种表达方法：在八进制数字前面要加一个横杠-，表示都匹配，如-007就相当于777，-006相当于666</p>
<div><code># ls -l<br />
-rwxrwxr-x    2 sam      adm             0 10月 31 01:01 http3.conf<br />
-rw-rw-rw-    1 sam      adm         34890 10月 31 00:57 httpd1.conf<br />
-rwxrwxr-x    2 sam      adm             0 10月 31 01:01 httpd.conf<br />
drw-rw-rw-    2 gem      group        4096 10月 26 19:48 sam<br />
-rw-rw-rw-    1 root     root         2792 10月 31 20:19 temp</code></p>
<p># find . -perm 006<br />
# find . -perm -006<br />
./sam<br />
./httpd1.conf<br />
./temp</p>
</div>
<p>-perm mode:文件许可正好符合mode</p>
<p>-perm +mode:文件许可部分符合mode</p>
<p>-perm -mode: 文件许可完全符合mode</p>
<p><span style="font-size: small;"><strong><br />
3、忽略某个目录<br />
</strong></span></p>
<p>如果在查找文件时希望忽略某个目录，因为你知道那个目录中没有你所要查找的文件，那么可以使用-prune选项来指出需要忽略的目录。在使用-prune选项时要当心，因为如果你同时使用了-depth选项，那么-prune选项就会被find命令忽略。</p>
<p>如果希望在/apps目录下查找文件，但不希望在/apps/bin目录下查找，可以用：</p>
<div><code>$ find /apps -path "/apps/bin" -prune -o -print</code></div>
<p><span style="font-size: small;"><strong><br />
4、使用find查找文件的时候怎么避开某个文件目录<br />
</strong></span></p>
<p>比如要在/usr/sam目录下查找不在dir1子目录之内的所有文件</p>
<div><code>find /usr/sam -path "/usr/sam/dir1" -prune -o -print </code></div>
<div><code>find [-path ..] [expression] 在路径列表的后面的是表达式</code></div>
<p>-path &#8220;/usr/sam&#8221; -prune -o -print 是 -path &#8220;/usr/sam&#8221; -a -prune -o<br />
-print 的简写表达式按顺序求值, -a 和 -o 都是短路求值，与 shell 的 &amp;&amp; 和 || 类似如果 -path  &#8220;/usr/sam&#8221; 为真，则求值 -prune , -prune 返回真，与逻辑表达式为真；否则不求值 -prune，与逻辑表达式为假。如果  -path &#8220;/usr/sam&#8221; -a -prune 为假，则求值 -print ，-print返回真，或逻辑表达式为真；否则不求值  -print，或逻辑表达式为真。</p>
<p>这个表达式组合特例可以用伪码写为</p>
<div><code>if -path "/usr/sam"  then<br />
-prune<br />
else<br />
-print</code></div>
<p>避开多个文件夹</p>
<div><code>find /usr/sam \( -path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -print</code></div>
<p>圆括号表示表达式的结合。</p>
<div><code>\ 表示引用，即指示 shell 不对后面的字符作特殊解释，而留给 find 命令去解释其意义。</code></div>
<p>查找某一确定文件，-name等选项加在-o 之后</p>
<div><code>#find /usr/sam  \(-path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -name "temp" -print</code></div>
<p><span style="font-size: small;"><strong><br />
5、使用user和nouser选项<br />
</strong></span></p>
<p>按文件属主查找文件，如在$HOME目录中查找文件属主为sam的文件，可以用：</p>
<div><code>$ find ~ -user sam -print</code></div>
<p>在/etc目录下查找文件属主为uucp的文件：</p>
<div><code>$ find /etc -user uucp -print</code></div>
<p>为了查找属主帐户已经被删除的文件，可以使用-nouser选项。这样就能够找到那些属主在/etc/passwd文件中没有有效帐户的文件。在使用-nouser选项时，不必给出用户名； find命令能够为你完成相应的工作。</p>
<p>例如，希望在/home目录下查找所有的这类文件，可以用：</p>
<div><code>$ find /home -nouser -print</code></div>
<p><span style="font-size: small;"><strong><br />
6、使用group和nogroup选项<br />
</strong></span></p>
<p>就像user和nouser选项一样，针对文件所属于的用户组， find命令也具有同样的选项，为了在/apps目录下查找属于gem用户组的文件，可以用：</p>
<div><code>$ find /apps -group gem -print</code></div>
<p>要查找没有有效所属用户组的所有文件，可以使用nogroup选项。下面的find命令从文件系统的根目录处查找这样的文件</p>
<div><code>$ find / -nogroup-print</code></div>
<p><span style="font-size: small;"><strong><br />
7、按照更改时间或访问时间等查找文件<br />
</strong></span></p>
<p>如果希望按照更改时间来查找文件，可以使用mtime,atime或ctime选项。如果系统突然没有可用空间了，很有可能某一个文件的长度在此期间增长迅速，这时就可以用mtime选项来查找这样的文件。</p>
<p>用减号-来限定更改时间在距今n日以内的文件，而用加号+来限定更改时间在距今n日以前的文件。</p>
<p>希望在系统根目录下查找更改时间在5日以内的文件，可以用：</p>
<div><code>$ find / -mtime -5 -print</code></div>
<p>为了在/var/adm目录下查找更改时间在3日以前的文件，可以用：</p>
<div><code>$ find /var/adm -mtime +3 -print</code></div>
<p><span style="font-size: small;"><strong><br />
8、查找比某个文件新或旧的文件<br />
</strong></span></p>
<p>如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件，可以使用-newer选项。它的一般形式为：</p>
<div><code>newest_file_name ! oldest_file_name</code></div>
<p>其中，！是逻辑非符号。</p>
<p>查找更改时间比文件sam新但比文件temp旧的文件：</p>
<p>例：有两个文件</p>
<div><code>-rw-r--r--    1 sam      adm             0 10月 31 01:07 fiel<br />
-rw-rw-rw-    1 sam      adm         34890 10月 31 00:57 httpd1.conf<br />
-rwxrwxr-x    2 sam      adm             0 10月 31 01:01 httpd.conf<br />
drw-rw-rw-    2 gem      group        4096 10月 26 19:48 sam<br />
-rw-rw-rw-    1 root     root         2792 10月 31 20:19 temp</code></p>
<p># find -newer httpd1.conf  ! -newer temp -ls<br />
1077669    0 -rwxrwxr-x   2 sam      adm             0 10月 31 01:01 ./httpd.conf<br />
1077671    4 -rw-rw-rw-   1 root     root         2792 10月 31 20:19 ./temp<br />
1077673    0 -rw-r&#8211;r&#8211;   1 sam      adm             0 10月 31 01:07 ./fiel</p>
</div>
<p>查找更改时间在比temp文件新的文件：</p>
<div><code>$ find . -newer temp -print</code></div>
<p><span style="font-size: small;"><strong><br />
9、使用type选项<br />
</strong></span></p>
<p>在/etc目录下查找所有的目录，可以用：</p>
<div><code>$ find /etc -type d -print</code></div>
<p>在当前目录下查找除目录以外的所有类型的文件，可以用：</p>
<div><code>$ find . ! -type d -print</code></div>
<p>在/etc目录下查找所有的符号链接文件，可以用</p>
<div><code>$ find /etc -type l -print</code></div>
<p><span style="font-size: small;"><strong><br />
10、使用size选项<br />
</strong></span></p>
<p>可以按照文件长度来查找文件，这里所指的文件长度既可以用块（block）来计量，也可以用字节来计量。以字节计量文件长度的表达形式为N c；以块计量文件长度只用数字表示即可。</p>
<p>在按照文件长度查找文件时，一般使用这种以字节表示的文件长度，在查看文件系统的大小，因为这时使用块来计量更容易转换。<br />
在当前目录下查找文件长度大于1 M字节的文件：</p>
<div><code>$ find . -size +1000000c -print</code></div>
<p>在/home/apache目录下查找文件长度恰好为100字节的文件：</p>
<div><code>$ find /home/apache -size 100c -print</code></div>
<p>在当前目录下查找长度超过10块的文件（一块等于512字节）：</p>
<div><code>$ find . -size +10 -print</code></div>
<p><span style="font-size: small;"><strong><br />
11、使用depth选项<br />
</strong></span></p>
<p>在使用find命令时，可能希望先匹配所有的文件，再在子目录中查找。使用depth选项就可以使find命令这样做。这样做的一个原因就是，当在使用find命令向磁带上备份文件系统时，希望首先备份所有的文件，其次再备份子目录中的文件。</p>
<p>在下面的例子中， find命令从文件系统的根目录开始，查找一个名为CON.FILE的文件。</p>
<p>它将首先匹配所有的文件然后再进入子目录中查找。</p>
<div><code>$ find / -name "CON.FILE" -depth -print</code></div>
<p><span style="font-size: small;"><strong><br />
12、使用mount选项<br />
</strong></span></p>
<p>在当前的文件系统中查找文件（不进入其他文件系统），可以使用find命令的mount选项。</p>
<p>从当前目录开始查找位于本文件系统中文件名以XC结尾的文件：</p>
<div><code>$ find . -name "*.XC" -mount -print</code></div>
<p><span style="font-size: medium;"><strong>五、关于本文</strong></span></p>
<p>本文是find 命令的详细说明，可贵的是针对参数举了很多的实例，大量的例证，让初学者更为容易理解；本文是<a href="http://www.linuxsir.org/bbs/member.php?u=57037" target="_blank">zhy2111314</a>兄贴在论坛中；我对本文进行了再次整理，为方便大家阅读； ── 北南南北</p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2010/08/linux%e6%96%87%e4%bb%b6%e6%9f%a5%e6%89%be%e5%91%bd%e4%bb%a4find-xargs%e8%af%a6%e8%bf%b0-zz/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>让Ubuntu 10.04标题栏按钮回到右侧 (ZZ)</title>
		<link>http://wyj.zhuwo.info/2010/08/%e8%ae%a9ubuntu-10-04%e6%a0%87%e9%a2%98%e6%a0%8f%e6%8c%89%e9%92%ae%e5%9b%9e%e5%88%b0%e5%8f%b3%e4%be%a7-zz/</link>
		<comments>http://wyj.zhuwo.info/2010/08/%e8%ae%a9ubuntu-10-04%e6%a0%87%e9%a2%98%e6%a0%8f%e6%8c%89%e9%92%ae%e5%9b%9e%e5%88%b0%e5%8f%b3%e4%be%a7-zz/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 16:22:29 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[linux应用]]></category>
		<category><![CDATA[技术为本]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=195</guid>
		<description><![CDATA[ubuntu 10.04版本中，大家可能会观察到一个比较直观的改变就是将标题栏的按钮放到了左侧。这无论你是初涉ubuntu，或者是一个用了多年ubuntu的朋友来说，都是一个比较难适应的改变。终端输入以下命令，能让你的ubuntu 10.04的标题栏按钮迅速回到右侧。 gconftool -s /apps/metacity/general/button_layout -t string menu:minimize,maximize,close 原文地址：http://www.unhex.net/index.php/archives/226]]></description>
			<content:encoded><![CDATA[<p>ubuntu 10.04版本中，大家可能会观察到一个比较直观的改变就是将标题栏的按钮放到了左侧。这无论你是初涉ubuntu，或者是一个用了多年ubuntu的朋友来说，都是一个比较难适应的改变。终端输入以下命令，能让你的<strong>ubuntu 10.04的标题栏</strong>按钮迅速回到右侧。<br />
<code>gconftool -s /apps/metacity/general/button_layout -t string menu:minimize,maximize,close</code><br />
原文地址：<a href="http://www.unhex.net/index.php/archives/226">http://www.unhex.net/index.php/archives/226</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2010/08/%e8%ae%a9ubuntu-10-04%e6%a0%87%e9%a2%98%e6%a0%8f%e6%8c%89%e9%92%ae%e5%9b%9e%e5%88%b0%e5%8f%b3%e4%be%a7-zz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一个不错的黑莓校时工具  ClockRevise</title>
		<link>http://wyj.zhuwo.info/2010/08/%e4%b8%80%e4%b8%aa%e4%b8%8d%e9%94%99%e7%9a%84%e9%bb%91%e8%8e%93%e6%a0%a1%e6%97%b6%e5%b7%a5%e5%85%b7-clockrevise/</link>
		<comments>http://wyj.zhuwo.info/2010/08/%e4%b8%80%e4%b8%aa%e4%b8%8d%e9%94%99%e7%9a%84%e9%bb%91%e8%8e%93%e6%a0%a1%e6%97%b6%e5%b7%a5%e5%85%b7-clockrevise/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 14:27:01 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[尚未分类]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=193</guid>
		<description><![CDATA[推荐一个黑莓手机的校时工具，挺好用的，速度快，准确。我的手机型号是9000。 软件地址：http://mbirds.cn/?p=404 激活地址：http://mbirds.cn/?page_id=161 本地下载：http://mbirds.cn/download/ClockRevise1.9.zip OTA下载：http://mbirds.cn/ota/ClockRevise1.9/ClockRevise.jad 偶的激活码：9000-04360，8700-05638 为了感谢作者，偶点了广告，表示支持 :-)]]></description>
			<content:encoded><![CDATA[<p>推荐一个黑莓手机的校时工具，挺好用的，速度快，准确。我的手机型号是9000。<br />
软件地址：<a href="http://mbirds.cn/?p=404">http://mbirds.cn/?p=404</a><br />
激活地址：<a href="http://mbirds.cn/?page_id=161">http://mbirds.cn/?page_id=161</a><br />
本地下载：<a href="http://mbirds.cn/download/ClockRevise1.9.zip">http://mbirds.cn/download/ClockRevise1.9.zip</a><br />
OTA下载：<a href="http://mbirds.cn/ota/ClockRevise1.9/ClockRevise.jad">http://mbirds.cn/ota/ClockRevise1.9/ClockRevise.jad</a><br />
偶的激活码：9000-04360，8700-05638</p>
<p>为了感谢作者，偶点了广告，表示支持 :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2010/08/%e4%b8%80%e4%b8%aa%e4%b8%8d%e9%94%99%e7%9a%84%e9%bb%91%e8%8e%93%e6%a0%a1%e6%97%b6%e5%b7%a5%e5%85%b7-clockrevise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>分布式编译 &#8211; 加速Android的编译（尚未解决）。</title>
		<link>http://wyj.zhuwo.info/2010/08/%e5%88%86%e5%b8%83%e5%bc%8f%e7%bc%96%e8%af%91-%e5%8a%a0%e9%80%9fandroid%e7%9a%84%e7%bc%96%e8%af%91%ef%bc%88%e5%b0%9a%e6%9c%aa%e8%a7%a3%e5%86%b3%ef%bc%89%e3%80%82/</link>
		<comments>http://wyj.zhuwo.info/2010/08/%e5%88%86%e5%b8%83%e5%bc%8f%e7%bc%96%e8%af%91-%e5%8a%a0%e9%80%9fandroid%e7%9a%84%e7%bc%96%e8%af%91%ef%bc%88%e5%b0%9a%e6%9c%aa%e8%a7%a3%e5%86%b3%ef%bc%89%e3%80%82/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 01:49:27 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[linux应用]]></category>
		<category><![CDATA[技术为本]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[compile]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=186</guid>
		<description><![CDATA[由于Android的代码量太大，所以，编译需要很久，都是以小时为单位的。多核处理器能加速编译，但是一旦把-j4加上，全速用四核进行编译，那么其他事情就做不了了，一切都变得很缓慢。鉴于这种情况，有同事建议采用分布式编译，并推荐了distcc和windows下的IncrediBuild。 简单看了一下，加速编译是没有问题的，但是怎么用到Android的编译系统上，还有待考究。没有太多时间，暂时搁置吧。]]></description>
			<content:encoded><![CDATA[<p>由于Android的代码量太大，所以，编译需要很久，都是以小时为单位的。多核处理器能加速编译，但是一旦把-j4加上，全速用四核进行编译，那么其他事情就做不了了，一切都变得很缓慢。鉴于这种情况，有同事建议采用分布式编译，并推荐了<a href="http://distcc.samba.org/">distcc</a>和windows下的<a href="http://www.google.com.hk/search?client=ubuntu&amp;channel=fs&amp;q=Incredibuild&amp;ie=utf-8&amp;oe=utf-8">IncrediBuild</a>。</p>
<p>简单看了一下，加速编译是没有问题的，但是怎么用到Android的编译系统上，还有待考究。没有太多时间，暂时搁置吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2010/08/%e5%88%86%e5%b8%83%e5%bc%8f%e7%bc%96%e8%af%91-%e5%8a%a0%e9%80%9fandroid%e7%9a%84%e7%bc%96%e8%af%91%ef%bc%88%e5%b0%9a%e6%9c%aa%e8%a7%a3%e5%86%b3%ef%bc%89%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>解决文件名mp3标签的中文乱码问题</title>
		<link>http://wyj.zhuwo.info/2010/08/%e8%a7%a3%e5%86%b3%e6%96%87%e4%bb%b6%e5%90%8dmp3%e6%a0%87%e7%ad%be%e7%9a%84%e4%b8%ad%e6%96%87%e4%b9%b1%e7%a0%81%e9%97%ae%e9%a2%98/</link>
		<comments>http://wyj.zhuwo.info/2010/08/%e8%a7%a3%e5%86%b3%e6%96%87%e4%bb%b6%e5%90%8dmp3%e6%a0%87%e7%ad%be%e7%9a%84%e4%b8%ad%e6%96%87%e4%b9%b1%e7%a0%81%e9%97%ae%e9%a2%98/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 04:03:00 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[linux应用]]></category>
		<category><![CDATA[技术为本]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=183</guid>
		<description><![CDATA[在Debian/Ubuntu或者其他Linux下面听歌的话，一般都会发现中文的TAG显示为乱码。这是因为Linux环境一般都是UTF8，而mp3大多是windows下面的，用的是gbk编码。解决的办法很简单，只需要添加两个环境变量即可： export GST_ID3_TAG_ENCODING=GBK:UTF-8:GB18030 export GST_ID3V2_TAG_ENCODING=GBK:UTF-8:GB18030 可以把这两句加入到.profile, .bashrc, .bash_profile之间任意一个，一般是放到.bash_profile里面。这样启动播放器rhythmbox，load mp3，中文显示就正常了。 参考链接：http://wiki.ubuntu.org.cn/解决文件名mp3标签和文本文件内容的乱码问题]]></description>
			<content:encoded><![CDATA[<p>在Debian/Ubuntu或者其他Linux下面听歌的话，一般都会发现中文的TAG显示为乱码。这是因为Linux环境一般都是UTF8，而mp3大多是windows下面的，用的是gbk编码。解决的办法很简单，只需要添加两个环境变量即可：</p>
<pre> export GST_ID3_TAG_ENCODING=GBK:UTF-8:GB18030
 export GST_ID3V2_TAG_ENCODING=GBK:UTF-8:GB18030
</pre>
<p>可以把这两句加入到.profile, .bashrc, .bash_profile之间任意一个，一般是放到.bash_profile里面。这样启动播放器rhythmbox，load mp3，中文显示就正常了。<br />
参考链接：<a href="http://wiki.ubuntu.org.cn/解决文件名mp3标签和文本文件内容的乱码问题">http://wiki.ubuntu.org.cn/解决文件名mp3标签和文本文件内容的乱码问题</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2010/08/%e8%a7%a3%e5%86%b3%e6%96%87%e4%bb%b6%e5%90%8dmp3%e6%a0%87%e7%ad%be%e7%9a%84%e4%b8%ad%e6%96%87%e4%b9%b1%e7%a0%81%e9%97%ae%e9%a2%98/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>gnome 下面使用中文农历桌面插件 lunar-applet</title>
		<link>http://wyj.zhuwo.info/2010/07/gnome-%e4%b8%8b%e9%9d%a2%e4%bd%bf%e7%94%a8%e4%b8%ad%e6%96%87%e5%86%9c%e5%8e%86%e6%a1%8c%e9%9d%a2%e6%8f%92%e4%bb%b6-lunar-applet/</link>
		<comments>http://wyj.zhuwo.info/2010/07/gnome-%e4%b8%8b%e9%9d%a2%e4%bd%bf%e7%94%a8%e4%b8%ad%e6%96%87%e5%86%9c%e5%8e%86%e6%a1%8c%e9%9d%a2%e6%8f%92%e4%bb%b6-lunar-applet/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 07:19:46 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[linux应用]]></category>
		<category><![CDATA[技术为本]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[lunar]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=176</guid>
		<description><![CDATA[在Debian/Ubuntu很简单，只需要 sudo aptitude install lunar-applet 即可，它会自动安装依赖包。 不过有个小问题，由于我使用的locale是en_US.utf8，所以阴历显示的都是拼音，看着很别扭。上网查了一下，解决办法很简单只需要： sudo ln -s /usr/share/locale/zh_CN/LC_MESSAGES/liblunar.mo /usr/share/locale/en/LC_MESSAGES/ 即可。 参考链接：http://code.google.com/p/lunar-applet/issues/detail?id=2]]></description>
			<content:encoded><![CDATA[<p>在Debian/Ubuntu很简单，只需要<br />
sudo aptitude install lunar-applet<br />
即可，它会自动安装依赖包。<br />
不过有个小问题，由于我使用的locale是en_US.utf8，所以阴历显示的都是拼音，看着很别扭。上网查了一下，解决办法很简单只需要：<br />
sudo ln -s /usr/share/locale/zh_CN/LC_MESSAGES/liblunar.mo /usr/share/locale/en/LC_MESSAGES/<br />
即可。</p>
<p>参考链接：http://code.google.com/p/lunar-applet/issues/detail?id=2</p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2010/07/gnome-%e4%b8%8b%e9%9d%a2%e4%bd%bf%e7%94%a8%e4%b8%ad%e6%96%87%e5%86%9c%e5%8e%86%e6%a1%8c%e9%9d%a2%e6%8f%92%e4%bb%b6-lunar-applet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ubuntu 10.04 Thinkpad 指点杆设置</title>
		<link>http://wyj.zhuwo.info/2010/07/ubuntu-10-04-thinkpad-%e6%8c%87%e7%82%b9%e6%9d%86%e8%ae%be%e7%bd%ae/</link>
		<comments>http://wyj.zhuwo.info/2010/07/ubuntu-10-04-thinkpad-%e6%8c%87%e7%82%b9%e6%9d%86%e8%ae%be%e7%bd%ae/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 02:12:14 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[尚未分类]]></category>
		<category><![CDATA[thinkpad]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=166</guid>
		<description><![CDATA[sudo aptitude install gpointing-device-settings 运行 gpointing-device-settings 看着设置吧，会好用很多。 参考链接：http://forum.ubuntu.org.cn/viewtopic.php?f=48&#038;t=260673&#038;start=0]]></description>
			<content:encoded><![CDATA[<p>sudo aptitude install gpointing-device-settings<br />
运行 gpointing-device-settings<br />
看着设置吧，会好用很多。<br />
参考链接：<a href="http://forum.ubuntu.org.cn/viewtopic.php?f=48&#038;t=260673&#038;start=0">http://forum.ubuntu.org.cn/viewtopic.php?f=48&#038;t=260673&#038;start=0</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2010/07/ubuntu-10-04-thinkpad-%e6%8c%87%e7%82%b9%e6%9d%86%e8%ae%be%e7%bd%ae/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在 Raid 服务器上安装 Debian lenny</title>
		<link>http://wyj.zhuwo.info/2010/07/%e5%9c%a8-raid-%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%b8%8a%e5%ae%89%e8%a3%85-debian-lenny/</link>
		<comments>http://wyj.zhuwo.info/2010/07/%e5%9c%a8-raid-%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%b8%8a%e5%ae%89%e8%a3%85-debian-lenny/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 07:03:11 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[linux应用]]></category>
		<category><![CDATA[技术为本]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[raid]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=172</guid>
		<description><![CDATA[安装时，要加上参数： dmraid=true 不然，会把 raid 认为多块硬盘。 原文链接：http://www.moyuer.cn/blog/?p=99]]></description>
			<content:encoded><![CDATA[<p>安装时，要加上参数：</p>
<div class="wp_syntax">
<div class="code">
<pre class="text" style="font-family: monospace;">dmraid=true</pre>
</div>
</div>
<p>不然，会把 raid 认为多块硬盘。</p>
<p>原文链接：<a href="http://www.moyuer.cn/blog/?p=99">http://www.moyuer.cn/blog/?p=99</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2010/07/%e5%9c%a8-raid-%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%b8%8a%e5%ae%89%e8%a3%85-debian-lenny/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ERROR 1045 (28000): Access denied for user (Using password: YES)</title>
		<link>http://wyj.zhuwo.info/2010/07/error-1045-28000-access-denied-for-user-using-password-yes/</link>
		<comments>http://wyj.zhuwo.info/2010/07/error-1045-28000-access-denied-for-user-using-password-yes/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 06:58:27 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[linux应用]]></category>
		<category><![CDATA[技术为本]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=170</guid>
		<description><![CDATA[如果mysql登录出现如题目的错误，可以参照下面链接里面的解决方法。 http://lists.mysql.com/mysql/198751 其实很简单，就是flush一下，然后重启mysql即可。]]></description>
			<content:encoded><![CDATA[<p>如果mysql登录出现如题目的错误，可以参照下面链接里面的解决方法。</p>
<p><a href="http://lists.mysql.com/mysql/198751">http://lists.mysql.com/mysql/198751</a></p>
<p>其实很简单，就是flush一下，然后重启mysql即可。</p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2010/07/error-1045-28000-access-denied-for-user-using-password-yes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINUX在CLI下批量处理照片(转贴)</title>
		<link>http://wyj.zhuwo.info/2010/07/linux%e5%9c%a8cli%e4%b8%8b%e6%89%b9%e9%87%8f%e5%a4%84%e7%90%86%e7%85%a7%e7%89%87%e8%bd%ac%e8%b4%b4/</link>
		<comments>http://wyj.zhuwo.info/2010/07/linux%e5%9c%a8cli%e4%b8%8b%e6%89%b9%e9%87%8f%e5%a4%84%e7%90%86%e7%85%a7%e7%89%87%e8%bd%ac%e8%b4%b4/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 06:55:18 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[linux应用]]></category>
		<category><![CDATA[技术为本]]></category>
		<category><![CDATA[文摘转贴]]></category>
		<category><![CDATA[cli]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=167</guid>
		<description><![CDATA[YJ在ubuntu: 批量处理照片的问题里介绍了他找到的在Ubuntu下批量处理照片的方法。他讲的两种方法都是基于GUI的。我到不是反对GUI，不过就像Andrew Tanenbaum （大牛阿，MINIX的作者，一堆经典CS教材的作者）的在他的FAQ (推荐读一下，挺有意思) 里说到的一条: Do you like WYSIWYG systems? Definitely not. I can type faster than I can point. And my mother told me that pointing is impolite. 没错，type faster than point，所以很多时候CLI会比GUI更高效便捷一点。我这一贴就说说我发现或找到的用CLI批量处理图片的方法。 这里都假设使用ImageMagick里的工具，YJ说的那个用Nautilus Image Scripts，最终调用的还是ImageMagick，相当一部分Linux（甚至Win下）的图像相关的自由软件都选择了调用ImageMagick提供的命令。 好了，假设在CLI下，resize一张照片A.JPG，用convert： convert -resize &#8230; <a href="http://wyj.zhuwo.info/2010/07/linux%e5%9c%a8cli%e4%b8%8b%e6%89%b9%e9%87%8f%e5%a4%84%e7%90%86%e7%85%a7%e7%89%87%e8%bd%ac%e8%b4%b4/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://live.haliluya.org/">YJ</a>在<a href="http://live.haliluya.org/2006/08/ubuntu.html">ubuntu: 批量处理照片的问题</a>里介绍了他找到的在Ubuntu下批量处理照片的方法。他讲的两种方法都是基于GUI的。我到不是反对GUI，不过就像<a href="http://www.cs.vu.nl/%7East/">Andrew Tanenbaum</a> （大牛阿，<a href="http://www.minix3.org/">MINIX</a>的作者，一堆<a href="http://www.prenhall.com/tanenbaum/">经典CS教材</a>的作者）的在他的<a href="http://www.cs.vu.nl/%7East/home/faq.html">FAQ</a> (推荐读一下，挺有意思) 里说到的一条:</p>
<blockquote><p><strong> Do you like WYSIWYG systems?</strong></p>
<p>Definitely not. I can type faster than I can point. And my mother told me that pointing is impolite.</p></blockquote>
<p>没错，type faster than point，所以很多时候CLI会比GUI更高效便捷一点。我这一贴就说说我发现或找到的用CLI批量处理图片的方法。</p>
<p>这里都假设使用<a href="http://www.imagemagick.org/">ImageMagick</a>里的工具，YJ说的那个用<a href="http://www.gnomefiles.org/app.php/NIS_%28Nautilus_Image_Script%29">Nautilus Image Scripts</a>，最终调用的还是ImageMagick，相当一部分Linux（甚至Win下）的图像相关的自由软件都选择了调用ImageMagick提供的命令。</p>
<p>好了，假设在CLI下，resize一张照片A.JPG，用<a href="http://www.imagemagick.org/script/convert.php">convert</a>：</p>
<div class="hl-surround">
<ol class="hl-main ln-show" title="Double click to hide line number." ondblclick="linenumber(this)">
<li class="hl-firstline">convert -resize 60% -quality 80 A.JPG A-resize.JPG</li>
</ol>
</div>
<p>现在用同样的命令来批量处理同一个目录（及其子目录）下的所有JPG结尾的照片，我在Bash下用的命令是这样的:</p>
<div class="hl-surround">
<ol class="hl-main ln-show" title="Double click to hide line number." ondblclick="linenumber(this)">
<li class="hl-firstline">find . -name \*.JPG -print | awk -F.JPG &#8216;{ output = $1&#8243;-resize.JPG&#8221; ; cmd = &#8220;convert -resize 60% -quality 80 &#8220;$0&#8243; &#8220;output; system(cmd)}&#8217;</li>
</ol>
</div>
<p>要是你嫌这条命令太过于安静，而你要同时处理很多照片，希望屏幕上能报告一下执行情况，可以这样:</p>
<div class="hl-surround">
<ol class="hl-main ln-show" title="Double click to hide line number." ondblclick="linenumber(this)">
<li class="hl-firstline">find . -name \*.JPG -print | awk -F.JPG &#8216;{ output = $1&#8243;-resize.JPG&#8221; ; cmd = &#8220;convert -resize 60% -quality 80 &#8220;$0&#8243; &#8220;output; print cmd; system(cmd)}&#8217;</li>
</ol>
</div>
<p>这样之后，resize的照片是在当前目录下的，但是都重名了。Linux CLI下千变万化，同一件事情可能有无数种作法，比如我随便google了一下，就找到<a href="http://www.perturb.org/display/entry/632/">一篇</a>，列一下里面提到的方法。</p>
<p>假设你在当前目录下，新建了一个目录/tmp/output，用来放resize后的照片，并且，你可以这样做:</p>
<div class="hl-surround">
<ol class="hl-main ln-show" title="Double click to hide line number." ondblclick="linenumber(this)">
<li class="hl-firstline">mkdir /tmp/output</li>
<li>find . -name \*.JPG -exec convert -resize 60% -quality 80 {} /tmp/output/{} \;</li>
</ol>
</div>
<p>用这个方法，你的output目录不能建在当前目录下（试试看，就知道为什么了）， 而且没办法向上面那样重命名文件。用find的-exec还会有其他<a href="http://www.linuxsir.org/main/?q=node/137#3">问题</a>。find配合xargs会更有效率，比如</p>
<div class="hl-surround">
<ol class="hl-main ln-show" title="Double click to hide line number." ondblclick="linenumber(this)">
<li class="hl-firstline">find . -name &#8220;*.JPG&#8221; | xargs -l -i convert -resize 60% -quality 80 {} /tmp/output/{}</li>
</ol>
</div>
<p>当然了，还可以使用perl强大的-e功能了，基本上是为所欲为了:</p>
<div class="hl-surround">
<ol class="hl-main ln-show" title="Double click to hide line number." ondblclick="linenumber(this)">
<li class="hl-firstline">mkdir output</li>
<li>find . -iname &#8220;*.JPG&#8221; | perl -e &#8216;for(&lt;&gt;) { chomp $_;@a=split ( /\// , $_ ) ;$str = &#8220;convert -resize 60% -quality 80 $_ output/&#8221;.$a[-1];print $str.&#8221;\n&#8221;;`$str`}&#8217;</li>
</ol>
</div>
<p>也可以调用shell的loop功能来通过循环做这件事情，比如在bash里可以</p>
<div class="hl-surround">
<ol class="hl-main ln-show" title="Double click to hide line number." ondblclick="linenumber(this)">
<li class="hl-firstline">for file in `find . -name \*.JPG`; do convert -resize 60% -quality 80 ${file} ${file%.*}-resize.JPG; done</li>
</ol>
</div>
<p>总之，CLI下利用UNIX/LINUX的命令组合，常常会有非常简洁的实现，我上面提到的方法可能是很笨的，欢迎指正，补充。</p>
<p>如果要实现较为复杂的功能， 可以自己写Shell脚本，或者perl脚本等等。网上也有很多写好现成的，能实现各种功能，比如<a href="http://www.bbips.org/">BBIPS: Bash Batch Image Processing Script</a>，也是在CLI下用，看看它的<a href="http://www.bbips.org/screenshots.html">screenshot</a>。</p>
<p>原文链接：<a href="http://zeal.haliluya.org/blog/2006/08/22/batch-processing-image-in-linux-cli/">http://zeal.haliluya.org/blog/2006/08/22/batch-processing-image-in-linux-cli/</a></p>
<p>总结非常好，我直接拿来了:-)。</p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2010/07/linux%e5%9c%a8cli%e4%b8%8b%e6%89%b9%e9%87%8f%e5%a4%84%e7%90%86%e7%85%a7%e7%89%87%e8%bd%ac%e8%b4%b4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian 时区的设置</title>
		<link>http://wyj.zhuwo.info/2010/07/debian-%e6%97%b6%e5%8c%ba%e7%9a%84%e8%ae%be%e7%bd%ae/</link>
		<comments>http://wyj.zhuwo.info/2010/07/debian-%e6%97%b6%e5%8c%ba%e7%9a%84%e8%ae%be%e7%bd%ae/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 10:11:48 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[尚未分类]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=161</guid>
		<description><![CDATA[Debian 5 lenny 装好之后，默认的时区是US/Eastern，简写为EDT。我需要显示中国的北京时间，所以要把时区改到东八区。很简单，执行下面语句选择Asia/Shanghai就可以了。 $ sudo dpkg-reconfigure tzdata $ date Mon Jul 19 18:07:28 CST 2010 $ date -u Mon Jul 19 10:08:56 UTC 2010 时间正常显示了。 如果时间不对的话，可以用 date -s 来设置当前时间。]]></description>
			<content:encoded><![CDATA[<p>Debian 5 lenny 装好之后，默认的时区是US/Eastern，简写为EDT。我需要显示中国的北京时间，所以要把时区改到东八区。很简单，执行下面语句选择Asia/Shanghai就可以了。<br />
<code>$ sudo dpkg-reconfigure tzdata<br />
$ date<br />
Mon Jul 19 18:07:28 CST 2010<br />
$ date -u<br />
Mon Jul 19 10:08:56 UTC 2010</code><br />
时间正常显示了。<br />
如果时间不对的话，可以用 date -s 来设置当前时间。</p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2010/07/debian-%e6%97%b6%e5%8c%ba%e7%9a%84%e8%ae%be%e7%bd%ae/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 升级到3.0，首页空白，无法显示任何内容。</title>
		<link>http://wyj.zhuwo.info/2010/07/wordpress-%e5%8d%87%e7%ba%a7%e5%88%b03-0%ef%bc%8c%e9%a6%96%e9%a1%b5%e7%a9%ba%e7%99%bd%ef%bc%8c%e6%97%a0%e6%b3%95%e6%98%be%e7%a4%ba%e4%bb%bb%e4%bd%95%e5%86%85%e5%ae%b9%e3%80%82/</link>
		<comments>http://wyj.zhuwo.info/2010/07/wordpress-%e5%8d%87%e7%ba%a7%e5%88%b03-0%ef%bc%8c%e9%a6%96%e9%a1%b5%e7%a9%ba%e7%99%bd%ef%bc%8c%e6%97%a0%e6%b3%95%e6%98%be%e7%a4%ba%e4%bb%bb%e4%bd%95%e5%86%85%e5%ae%b9%e3%80%82/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 15:02:18 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[网络应用]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[upgrade]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=159</guid>
		<description><![CDATA[今天用SVN的方式把WordPress升级到了3.0，过程很顺利，但是结果出现了问题，首页空白，没有任何内容。上网查了一下，有说是插件没有禁用的问题。把插件全部禁用了，还是不行，郁闷那。顺着这个思路想了想，是不是Theme的问题呢。果然，应用了新版默认主题之后，就好了。:-)]]></description>
			<content:encoded><![CDATA[<p>今天用SVN的方式把WordPress升级到了3.0，过程很顺利，但是结果出现了问题，首页空白，没有任何内容。上网查了一下，有说是插件没有禁用的问题。把插件全部禁用了，还是不行，郁闷那。顺着这个思路想了想，是不是Theme的问题呢。果然，应用了新版默认主题之后，就好了。:-)</p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2010/07/wordpress-%e5%8d%87%e7%ba%a7%e5%88%b03-0%ef%bc%8c%e9%a6%96%e9%a1%b5%e7%a9%ba%e7%99%bd%ef%bc%8c%e6%97%a0%e6%b3%95%e6%98%be%e7%a4%ba%e4%bb%bb%e4%bd%95%e5%86%85%e5%ae%b9%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>修复Deepin 深度Xp系统 IE 首页</title>
		<link>http://wyj.zhuwo.info/2009/07/%e4%bf%ae%e5%a4%8ddeepin-%e6%b7%b1%e5%ba%a6xp%e7%b3%bb%e7%bb%9f-ie-%e9%a6%96%e9%a1%b5/</link>
		<comments>http://wyj.zhuwo.info/2009/07/%e4%bf%ae%e5%a4%8ddeepin-%e6%b7%b1%e5%ba%a6xp%e7%b3%bb%e7%bb%9f-ie-%e9%a6%96%e9%a1%b5/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 14:21:27 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[技术为本]]></category>
		<category><![CDATA[deepin]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=138</guid>
		<description><![CDATA[系统用的是Deepin Xp sp3 6.2版，安装过后IE一直是一个默认的主页启动，无法修改，很是讨厌。上网搜了一下找到了一个解决办法。参照下面的网址：http://bbs.wxiu.com/redirect.php?tid=43136&#38;goto=lastpost 方法如下： 打开注册表路径：HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30309D} \shell\OpenHomePage\Command下的键值，可以看到数据值&#8221;C:\Program Files\Internet Explorer\IEXPLORE.EXE&#8221; [WEB ADDR] 将[WEB ADDR]得内容删除即可。 很喜欢Deepin的系统，但是这种流氓行为还是有点让人不齿。]]></description>
			<content:encoded><![CDATA[<p>系统用的是Deepin Xp sp3 6.2版，安装过后IE一直是一个默认的主页启动，无法修改，很是讨厌。上网搜了一下找到了一个解决办法。参照下面的网址：http://bbs.wxiu.com/redirect.php?tid=43136&amp;goto=lastpost</p>
<p>方法如下：</p>
<p>打开注册表路径：HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30309D} \shell\OpenHomePage\Command下的键值，可以看到数据值&#8221;C:\Program Files\Internet Explorer\IEXPLORE.EXE&#8221; [WEB ADDR] 将[WEB ADDR]得内容删除即可。</p>
<p>很喜欢Deepin的系统，但是这种流氓行为还是有点让人不齿。</p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2009/07/%e4%bf%ae%e5%a4%8ddeepin-%e6%b7%b1%e5%ba%a6xp%e7%b3%bb%e7%bb%9f-ie-%e9%a6%96%e9%a1%b5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>eclipse 编辑器标签式显示。</title>
		<link>http://wyj.zhuwo.info/2009/02/eclipse-%e7%bc%96%e8%be%91%e5%99%a8%e6%a0%87%e7%ad%be%e5%bc%8f%e6%98%be%e7%a4%ba%e3%80%82/</link>
		<comments>http://wyj.zhuwo.info/2009/02/eclipse-%e7%bc%96%e8%be%91%e5%99%a8%e6%a0%87%e7%ad%be%e5%bc%8f%e6%98%be%e7%a4%ba%e3%80%82/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 07:04:50 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[技术为本]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=125</guid>
		<description><![CDATA[某的一次不知道动了eclipse的什么设置，编辑区域上面的标签不见了。经过偶的不屑努力，终于在云海一样的设置找到了了标签设置，路径为： Window-&#62;Preferences-&#62;General-&#62;Editor，将Show multiple editor tabs的选项checked，就可以了。 其实还是很简单的哦～！]]></description>
			<content:encoded><![CDATA[<p>某的一次不知道动了eclipse的什么设置，编辑区域上面的标签不见了。经过偶的不屑努力，终于在云海一样的设置找到了了标签设置，路径为：</p>
<p>Window-&gt;Preferences-&gt;General-&gt;Editor，将Show multiple editor tabs的选项checked，就可以了。</p>
<p>其实还是很简单的哦～！</p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2009/02/eclipse-%e7%bc%96%e8%be%91%e5%99%a8%e6%a0%87%e7%ad%be%e5%bc%8f%e6%98%be%e7%a4%ba%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux 文件或文件夹批量修改名称。</title>
		<link>http://wyj.zhuwo.info/2008/12/linux-%e6%96%87%e4%bb%b6%e6%88%96%e6%96%87%e4%bb%b6%e5%a4%b9%e6%89%b9%e9%87%8f%e4%bf%ae%e6%94%b9%e5%90%8d%e7%a7%b0%e3%80%82/</link>
		<comments>http://wyj.zhuwo.info/2008/12/linux-%e6%96%87%e4%bb%b6%e6%88%96%e6%96%87%e4%bb%b6%e5%a4%b9%e6%89%b9%e9%87%8f%e4%bf%ae%e6%94%b9%e5%90%8d%e7%a7%b0%e3%80%82/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 06:17:16 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[linux应用]]></category>
		<category><![CDATA[技术为本]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=122</guid>
		<description><![CDATA[以前总是用mv来进行改名，批量修改的时候总是还要自己写脚本，不是太方便。原来还有一个rename是专门用来改名的，方便那。具体用法看man吧，很简单的。比如： rename s/^/test_/ * 把当前所有文件的名称前面加上前缀test_。简单吧。]]></description>
			<content:encoded><![CDATA[<p>以前总是用mv来进行改名，批量修改的时候总是还要自己写脚本，不是太方便。原来还有一个rename是专门用来改名的，方便那。具体用法看man吧，很简单的。比如：</p>
<ul>
<li>rename s/^/test_/ *</li>
</ul>
<p>把当前所有文件的名称前面加上前缀test_。简单吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2008/12/linux-%e6%96%87%e4%bb%b6%e6%88%96%e6%96%87%e4%bb%b6%e5%a4%b9%e6%89%b9%e9%87%8f%e4%bf%ae%e6%94%b9%e5%90%8d%e7%a7%b0%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>linux 下自动 mount 优盘。</title>
		<link>http://wyj.zhuwo.info/2008/11/linux-%e4%b8%8b%e8%87%aa%e5%8a%a8-mount-%e4%bc%98%e7%9b%98%e3%80%82/</link>
		<comments>http://wyj.zhuwo.info/2008/11/linux-%e4%b8%8b%e8%87%aa%e5%8a%a8-mount-%e4%bc%98%e7%9b%98%e3%80%82/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 16:15:09 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[linux应用]]></category>
		<category><![CDATA[技术为本]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=120</guid>
		<description><![CDATA[优盘在windows下插上就可以用，而在linux下经常还需要进行手动的mount操作，做多了会觉得有点烦。现在大多数发行版比如ubuntu都可以自动进行mount，很是方便。现在我用的是slackware12.1+xfce4.4.2，需要小小的修改一个地方就可以了自动识别优盘了，将用户添加到plugdev组就可以了。 sudo gpasswd -a [user] plugdev 类似，用“sudo gpasswd -a [user] cdrom”就可以直接挂载CD/DVD光盘了。 参考网址：http://www.pmme.cn/archives/slove-ubuntu-cannot-auto-mount-udisk/]]></description>
			<content:encoded><![CDATA[<p>优盘在windows下插上就可以用，而在linux下经常还需要进行手动的mount操作，做多了会觉得有点烦。现在大多数发行版比如ubuntu都可以自动进行mount，很是方便。现在我用的是slackware12.1+xfce4.4.2，需要小小的修改一个地方就可以了自动识别优盘了，将用户添加到plugdev组就可以了。</p>
<ul>
<li>sudo gpasswd -a [user] plugdev</li>
</ul>
<p>类似，用“sudo gpasswd -a [user] cdrom”就可以直接挂载CD/DVD光盘了。</p>
<p>参考网址：http://www.pmme.cn/archives/slove-ubuntu-cannot-auto-mount-udisk/</p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2008/11/linux-%e4%b8%8b%e8%87%aa%e5%8a%a8-mount-%e4%bc%98%e7%9b%98%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>配置slackware的Bash命令补全——bash_completion</title>
		<link>http://wyj.zhuwo.info/2008/11/%e9%85%8d%e7%bd%aeslackware%e7%9a%84bash%e5%91%bd%e4%bb%a4%e8%a1%a5%e5%85%a8%e2%80%94%e2%80%94bash_completion/</link>
		<comments>http://wyj.zhuwo.info/2008/11/%e9%85%8d%e7%bd%aeslackware%e7%9a%84bash%e5%91%bd%e4%bb%a4%e8%a1%a5%e5%85%a8%e2%80%94%e2%80%94bash_completion/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 15:21:19 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[linux应用]]></category>
		<category><![CDATA[技术为本]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=118</guid>
		<description><![CDATA[linux下的shell一般都有命令补全的功能，不过用了bash_completion之后你才会知道什么叫强大，什么叫智能！使用起来很简单： 下载bash_completion的最新版本，目前为bash-completion-20060301.tar.gz。 tar zxvf &#8230; 解压缩，得到一堆文件，其中文件README很清楚明了的说明了用法。 cp bash_completion /etc/; cp bash_completion.sh /etc/profile.d。 搞定了！重新登录即可生效。 有了这个插件，不光sudo也可以补全了，而且连部分命令的参数也能自动补全，还会自动识别对应的后缀，比如tar zxvf 就会只补全tar.gz后缀的文件。很好，很强大吧？]]></description>
			<content:encoded><![CDATA[<p>linux下的shell一般都有命令补全的功能，不过用了<a href="http://www.caliban.org/bash/">bash_completion</a>之后你才会知道什么叫强大，什么叫智能！使用起来很简单：</p>
<ol>
<li>下载bash_completion的最新版本，目前为<a href="http://www.caliban.org/files/bash/bash-completion-20060301.tar.gz">bash-completion-20060301.tar.gz</a>。</li>
<li>tar zxvf &#8230; 解压缩，得到一堆文件，其中文件README很清楚明了的说明了用法。</li>
<li>cp bash_completion /etc/; cp bash_completion.sh /etc/profile.d。</li>
<li>搞定了！重新登录即可生效。</li>
</ol>
<p>有了这个插件，不光sudo也可以补全了，而且连部分命令的参数也能自动补全，还会自动识别对应的后缀，比如tar zxvf 就会只补全tar.gz后缀的文件。很好，很强大吧？</p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2008/11/%e9%85%8d%e7%bd%aeslackware%e7%9a%84bash%e5%91%bd%e4%bb%a4%e8%a1%a5%e5%85%a8%e2%80%94%e2%80%94bash_completion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>中国人误传千年的七句话：“无毒不丈夫”最离谱(ZZ)</title>
		<link>http://wyj.zhuwo.info/2008/11/%e4%b8%ad%e5%9b%bd%e4%ba%ba%e8%af%af%e4%bc%a0%e5%8d%83%e5%b9%b4%e7%9a%84%e4%b8%83%e5%8f%a5%e8%af%9d%ef%bc%9a%e2%80%9c%e6%97%a0%e6%af%92%e4%b8%8d%e4%b8%88%e5%a4%ab%e2%80%9d%e6%9c%80%e7%a6%bb%e8%b0%b1z/</link>
		<comments>http://wyj.zhuwo.info/2008/11/%e4%b8%ad%e5%9b%bd%e4%ba%ba%e8%af%af%e4%bc%a0%e5%8d%83%e5%b9%b4%e7%9a%84%e4%b8%83%e5%8f%a5%e8%af%9d%ef%bc%9a%e2%80%9c%e6%97%a0%e6%af%92%e4%b8%8d%e4%b8%88%e5%a4%ab%e2%80%9d%e6%9c%80%e7%a6%bb%e8%b0%b1z/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 09:54:36 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[五味人生]]></category>
		<category><![CDATA[文摘转贴]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=113</guid>
		<description><![CDATA[在中国崇尚权威的文化氛围中，名人名言占的地位是很重的，很多名家说的话，往往被人民当成指导自己人生观世界观的不二准则，但这些几千年流传下来的 名言中，也有一些话被人刻意或无知地曲解，背离了话语者本身的意旨与初衷，迷惑了天下万千受众。影不才，试举数例解析一二，以还世情真相与大众……好了我 再文诌诌地说话大家估计要扔鸡蛋，虚心也满足了，下面开始举例开讲。 【1、以德抱怨】 原句：“或曰：‘以德报怨，何如？’子曰：“何以报德？以直报怨，以德报德” ————《论语 宪问》 以德抱怨，是我们常听到的一句话了，人们通常理解的“以德抱怨”什么意思呢？就是说：孔老夫子教我们，别人欺负你了，你要忍，被打碎牙齿也 要往肚子里吞，别人来欺负你，你反而应该对他更好，要用你的爱心去感化他，用你的胸怀去感动他。这就让人感觉很有点肃然了。想想看，如果我一巴掌呼过去那 个被打的人还笑笑说打得好啊，你越打我我就要对你越好……遇到这种情况我也会感动到傻眼，这多好一孩子，多伟大的情操啊…… 但事实上，我们根本曲解了孔子的原意，我当初，也万万没想到原来在孔子这句“以德抱怨”的后边还跟着另外一段话，什么话呢？子曰：“以德抱 怨，何以报德？以直报怨，以德报德！”看完以后，幡然醒悟，原来我们都被某个断章取义的孔子FANS给玩了一把！当时的真实情况是怎么样的呢？孔子的一个 弟子问他说：师傅，别人打我了，我不打他，我反而要对他好，用我的道德和教养羞死他，让他悔悟，好不好？孔子就说了，你以德抱怨，那“何以报德？”别人以 德来待你的时候，你才需要以德来回报别人。可是现在别人打了你，你就应该“以直抱怨”，拿起板砖飞他！看！就因为被人故意省略了一句话，刚烈如火的孔老夫 子一下就被扭曲成了现在这个温婉的受气包形象。 与西方文化相比，东方文明一向被认为是谦逊坚忍的，同样是被人欺负，西方的带头大哥耶稣在圣经里就叫嚣要：“以眼还眼，以牙还牙。”小弟 们！别人瞪了你一眼，你就要瞪回去，别人咬了你一口，你就要咬回来！而东方呢？佛家的精神领袖释迦牟尼说“我不入地狱，谁入地狱？”一副逆来顺受的样子。 而且他可不是说说而已的，大鹰来欺负他，要吃他的肉，他也真从自己身上一刀刀帮大鹰割下肉来，这就伟大得有点近乎BT了。说完了国外的几位大领导，再回到 中国，孔老宗师的这句话为什么会被别人有意地曲解呢？根源还是当时封建统治者的需要，他们的心思，无外乎就是要信仰孔子的万千民众成为“以德抱怨”的顺 民，只有“以德抱怨”的民众，才会老老实实地服从他们的剥削和压迫。我们再来看看影响吧，孔老先生这句被曲解了的“以德抱怨”，在中国文化史上起的压迫作 用，可真是大到了天上。皇帝残暴，我们要“以德抱怨”，地主剥削，我们要“以德抱怨”，八国联军都打到北京了，还是要“以德抱怨”，要卑躬屈膝，要割地称 臣，要想尽一切办法彰现自己的“德”，要“量中华之物力，结大国之欢心”……就是没想过反抗。试想，如果中国的文化里，没有这种把正确的思想东篡西改来为 封建统治阶级服务的恶习，如果孔子这句原话没有被刻意地曲解成这样子，我们中国人会养成这样一种懦弱的思维惯性吗？有人说西方人的骨子里本性是狼性，而东 方人的骨子里的本性是羊性，这里如月影倒想问问了，是什么原因让我们变成了这样？如果我们从古以来信奉的是西方那种“以眼还眼，以牙还牙”的训诫，近代史 上的中国，会给世界留下那么一个任人鱼肉的印象吗？ 以德抱怨。 原句：以德抱怨，何以报德？以直报怨，以德报德。 歪曲程度：8 反面影响：9 【2、民可使由之，不可使知之。】 原句：。“子曰：兴于诗，立于礼，成于乐。子曰：民可使由之，不可使知之。”——————《论语·秦伯》 又是孔老先生的话，小小景仰一下下先。 民可使由之，不可使知之，这句话什么意思呢？是说，国家统治人民，指使驱赶他们去做事就行了，不要让他们明白他们在做什么。这句话在现在看 来，绝对很明显就是封建统治阶级几千年来一直在玩弄的愚民权术，小老百姓嘛，让他们知道那么多干什么？最好都是昏昏噩噩，只知道照着我们的意思去庸庸碌碌 一辈子，这句训诫不可谓不恶毒，它被千百年来中国的大小封建统治者奉为至宝，抹杀了多少真理与人民的创造性，但同时，我们的问题就来了，这样的一条愚民之 术，真是孔子这位致力于教化人民的教育家的本意吗？ 我们知道，在春秋时代的文章是没有标点符号的，后人要研读那时侯的文章，便要再经过一个“句断”的过程，即是根据上下文意思自己在句子的适 当地方加上标点和停顿，这样才能得出一句句意通顺而连贯的话。在这里插一句，孔子的文章为什么被后人引用得非常多呢？这其一当然是孔子本身的名望使然，其 二，则是因为他的语录涵盖的范围非常广，几乎包括了社会生活的方方面面，这样一来，后来的人无论是谁，抱着什么目的，都可以从孔子的话中断章取义地引用其 中的相关部分，再加以自己个人倾向的理解和句断，用来证明自己的观点。比方说现在这句“民可使由之不可使知之”，从前文来看，我们孔老先生前边一直在讨论 &#8230; <a href="http://wyj.zhuwo.info/2008/11/%e4%b8%ad%e5%9b%bd%e4%ba%ba%e8%af%af%e4%bc%a0%e5%8d%83%e5%b9%b4%e7%9a%84%e4%b8%83%e5%8f%a5%e8%af%9d%ef%bc%9a%e2%80%9c%e6%97%a0%e6%af%92%e4%b8%8d%e4%b8%88%e5%a4%ab%e2%80%9d%e6%9c%80%e7%a6%bb%e8%b0%b1z/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>在中国崇尚权威的文化氛围中，名人名言占的地位是很重的，很多名家说的话，往往被人民当成指导自己人生观世界观的不二准则，但这些几千年流传下来的 名言中，也有一些话被人刻意或无知地曲解，背离了话语者本身的意旨与初衷，迷惑了天下万千受众。影不才，试举数例解析一二，以还世情真相与大众……好了我 再文诌诌地说话大家估计要扔鸡蛋，虚心也满足了，下面开始举例开讲。</p>
<p>【1、以德抱怨】</p>
<p>原句：“或曰：‘以德报怨，何如？’子曰：“何以报德？以直报怨，以德报德” ————《论语 宪问》<span id="more-113"></span></p>
<p>以德抱怨，是我们常听到的一句话了，人们通常理解的“以德抱怨”什么意思呢？就是说：孔老夫子教我们，别人欺负你了，你要忍，被打碎牙齿也 要往肚子里吞，别人来欺负你，你反而应该对他更好，要用你的爱心去感化他，用你的胸怀去感动他。这就让人感觉很有点肃然了。想想看，如果我一巴掌呼过去那 个被打的人还笑笑说打得好啊，你越打我我就要对你越好……遇到这种情况我也会感动到傻眼，这多好一孩子，多伟大的情操啊……</p>
<p>但事实上，我们根本曲解了孔子的原意，我当初，也万万没想到原来在孔子这句“以德抱怨”的后边还跟着另外一段话，什么话呢？子曰：“以德抱 怨，何以报德？以直报怨，以德报德！”看完以后，幡然醒悟，原来我们都被某个断章取义的孔子FANS给玩了一把！当时的真实情况是怎么样的呢？孔子的一个 弟子问他说：师傅，别人打我了，我不打他，我反而要对他好，用我的道德和教养羞死他，让他悔悟，好不好？孔子就说了，你以德抱怨，那“何以报德？”别人以 德来待你的时候，你才需要以德来回报别人。可是现在别人打了你，你就应该“以直抱怨”，拿起板砖飞他！看！就因为被人故意省略了一句话，刚烈如火的孔老夫 子一下就被扭曲成了现在这个温婉的受气包形象。</p>
<p>与西方文化相比，东方文明一向被认为是谦逊坚忍的，同样是被人欺负，西方的带头大哥耶稣在圣经里就叫嚣要：“以眼还眼，以牙还牙。”小弟 们！别人瞪了你一眼，你就要瞪回去，别人咬了你一口，你就要咬回来！而东方呢？佛家的精神领袖释迦牟尼说“我不入地狱，谁入地狱？”一副逆来顺受的样子。 而且他可不是说说而已的，大鹰来欺负他，要吃他的肉，他也真从自己身上一刀刀帮大鹰割下肉来，这就伟大得有点近乎BT了。说完了国外的几位大领导，再回到 中国，孔老宗师的这句话为什么会被别人有意地曲解呢？根源还是当时封建统治者的需要，他们的心思，无外乎就是要信仰孔子的万千民众成为“以德抱怨”的顺 民，只有“以德抱怨”的民众，才会老老实实地服从他们的剥削和压迫。我们再来看看影响吧，孔老先生这句被曲解了的“以德抱怨”，在中国文化史上起的压迫作 用，可真是大到了天上。皇帝残暴，我们要“以德抱怨”，地主剥削，我们要“以德抱怨”，八国联军都打到北京了，还是要“以德抱怨”，要卑躬屈膝，要割地称 臣，要想尽一切办法彰现自己的“德”，要“量中华之物力，结大国之欢心”……就是没想过反抗。试想，如果中国的文化里，没有这种把正确的思想东篡西改来为 封建统治阶级服务的恶习，如果孔子这句原话没有被刻意地曲解成这样子，我们中国人会养成这样一种懦弱的思维惯性吗？有人说西方人的骨子里本性是狼性，而东 方人的骨子里的本性是羊性，这里如月影倒想问问了，是什么原因让我们变成了这样？如果我们从古以来信奉的是西方那种“以眼还眼，以牙还牙”的训诫，近代史 上的中国，会给世界留下那么一个任人鱼肉的印象吗？</p>
<p>以德抱怨。</p>
<p>原句：以德抱怨，何以报德？以直报怨，以德报德。</p>
<p>歪曲程度：8</p>
<p>反面影响：9</p>
<p>【2、民可使由之，不可使知之。】</p>
<p>原句：。“子曰：兴于诗，立于礼，成于乐。子曰：民可使由之，不可使知之。”——————《论语·秦伯》</p>
<p>又是孔老先生的话，小小景仰一下下先。</p>
<p>民可使由之，不可使知之，这句话什么意思呢？是说，国家统治人民，指使驱赶他们去做事就行了，不要让他们明白他们在做什么。这句话在现在看 来，绝对很明显就是封建统治阶级几千年来一直在玩弄的愚民权术，小老百姓嘛，让他们知道那么多干什么？最好都是昏昏噩噩，只知道照着我们的意思去庸庸碌碌 一辈子，这句训诫不可谓不恶毒，它被千百年来中国的大小封建统治者奉为至宝，抹杀了多少真理与人民的创造性，但同时，我们的问题就来了，这样的一条愚民之 术，真是孔子这位致力于教化人民的教育家的本意吗？</p>
<p>我们知道，在春秋时代的文章是没有标点符号的，后人要研读那时侯的文章，便要再经过一个“句断”的过程，即是根据上下文意思自己在句子的适 当地方加上标点和停顿，这样才能得出一句句意通顺而连贯的话。在这里插一句，孔子的文章为什么被后人引用得非常多呢？这其一当然是孔子本身的名望使然，其 二，则是因为他的语录涵盖的范围非常广，几乎包括了社会生活的方方面面，这样一来，后来的人无论是谁，抱着什么目的，都可以从孔子的话中断章取义地引用其 中的相关部分，再加以自己个人倾向的理解和句断，用来证明自己的观点。比方说现在这句“民可使由之不可使知之”，从前文来看，我们孔老先生前边一直在讨论 诗礼乐这三种东东的教育问题，可怎么后边一下子就变成去教帝王权术的训诫了呢？原来，这又是后人别有用心地断章取义，刻意在句子的中间用一个不恰当的“句 断”使这句话产生了歧义的缘故。我们结合上下文的语境，很容易就能得出这句话正确的分句方法：“子曰：兴于诗，立于礼，成于乐。民可，使由之，不可，使知 之。”孔子的整句话就是说，诗、礼、乐这三样东西是教育民众的基础，一定要抓好，如果人民掌握了诗礼乐，好，让他们自由发挥，如果人民还玩不来这些东东， 我们就要去教化他们，让他们知道和明白这些东西。”你看，这才是“有教无类”的大教育家孔老先生的本意嘛。好好的一句话，硬是被那些别有用心的混蛋生生地 坳成了孔子要愚弄人民，要阻挠人民知书答理寻求知识的愚民之术。真不知道那些曲解这话的SB怎么想的，你要说这种P话是教育家孔子说出来的，谁信啊？都把 人民当白痴来忽悠了？</p>
<p>有人说古时候的中国人民是不幸的，即便是在物质丰富的盛世，他们的精神世界也贫乏得可怜，到了中近代，西方的思想领域渐渐迎来了文艺复兴， 迎来了民主共和，迎来了一个又一个推动世界的发明进步与思想启蒙，而聪明的中华民族呢？在更早的时候他们就有了伟大的四大发明，走在了世界的前边，可为什 么就是这么好的基础，到了近代我们反而远远于西方这些小字辈的民族？民可使由之，不可使知之，多恶毒的训诫啊！它象一条张开血盆大口的大蛇，狠狠地缠在中 华民族的身上，泯灭了多少先进的思维火花，束缚了多少应有所作为的苗子。但反过来看看，故意曲解这句话的封建统治者固然可恨，但我们能完全把责任都推到他 们身上吗？这本身就是多么可笑的一件事情，我们怎么就没想想，一个伟大的教育家，一个用一生置身于教化天下民众的孔子，又怎么会说出“民不可使知之”的蠢 话来？更可笑的是，这句话我们竟然就这样相信了几千年膜拜了几千年，这最后该伤心的，是孔老先生呢？还是我们呢？</p>
<p>民可使由之，不可使知之</p>
<p>原句：“子曰：兴于诗，立于礼，成于乐。民可，使由之；不可，使知之。”</p>
<p>歪曲程度：7</p>
<p>反面影响：9</p>
<p>【3、无毒不丈夫】</p>
<p>原句：量小非君子，无度不丈夫。——————民间谚语联对</p>
<p>量小非君子，无毒不丈夫，这句话绝对是中国众多以讹传讹的话中最搞笑的一个例子之一，就算是刚完成九年义务教育的初中生，也能轻易看出这其 中的不妥之处，首先，这无毒不丈夫，就跟我们认识的古人崇尚的价值观念大大背离了，大丈夫，自然是说那些坦坦荡荡胸怀宽广的男人，什么时候恶毒阴损，暗箭伤人这种前缀也能放在前边来形容大丈夫了？</p>
<p>原来，这句来自民间的谚语本来应该是“量小非君子，无度不丈夫”，这本来是个很好的句子，里边充分运用了对仗。显示出了一份阳刚有力的气魄，一个胸 怀坦荡的男人形象就跃然于纸上，可惜劳动人民口耳相传的这一句话，到了朝廷上那些所谓的学高八斗的“君子”嘴里就变了个味。为什么呢？这要从古时候文人的 习性说起，在这副对联式的谚语里，“度”为仄声字，犯了孤平，念着别扭，很容易读为平声字“毒”，那些对音律美感要求甚高的学者们某天吃饱了没事儿干，便 发挥他们的专长自做主张，把这句改为“无毒不丈夫”了，于是这句话，终于成了典型的“信言不美，美言不信”的例句，成了迂腐文人的笔下的又一个牺牲品，“ 量小非君子，无度不丈夫”，原话里一个君子对一个丈夫，一个度对另一个量，本来是很完美的一个句子，可经过上千年的以讹传讹，竟成了“无毒不丈夫”这句现 在我们挂在嘴边的口头禅。</p>
<p>这句话的整个演变过程，我宁可相信是无意的，否则也太缺德了，这不故意往咱男人身上抹黑么？但就是这无意的一个讹传，却也给我们带来了些说 大不大，说小不小的影响，我们都知道心理学上有个说法叫先入为主，潜移默化。无毒不丈夫，我们天天在耳濡目染这个被篡改了的男人形象之际，心里的价值观人 生观，难免也会受到些不良影响，天天看着电视里奸人怂恿主角干坏事的时候都用这句：“干吧！无毒不丈夫！”然后主角想想也对，于是五指并拢手掌上举，狠狠 地做一个切的动作：“无毒不丈夫，干！”你能说同样作为一个男人，这东西看久了你的思维能不收到一丁点儿的影响么？关于这种语言的影响力量，我再举个例 子，比如隔壁顶撞了我一下，这时候我朋友张三来了：用的是原版的好话劝我：“老话说，量小非君子，无度不丈夫，大如啊你是个男人，就别跟他一般计较了。” 张三这样说，我这个大丈夫当然再拉不下面子去计较这种小事，可如果另一种情况，张三来和我这么说：“这老话怎么说的？无毒不丈夫！大如，你是男人，不能怂 啊！给你刀，去做了他！” 看看，我听到他这话，除了接过刀速度冲出去乱砍以证明自己是个男人之外，还真没什么好办法，你说对不对？</p>
<p>无毒不丈夫</p>
<p>原句：量小非君子，无度不丈夫。</p>
<p>歪曲程度：9</p>
<p>反面影响：5</p>
<p>【4、唯女子与小人难养也。】</p>
<p>原句：唯女子与小人难养也，近之则不孙，远之则怨。——————《论语·阳货》</p>
<p>现今女权主义抬头，孔老夫子的这一句话便立时变成了女权精英批判者们群起而攻之的绝好靶子，看看，这就是你们中国男人歧视咱女性的最初起 源，孔夫子这老混蛋啊！害我们女性被压迫了几千年啊几千年，好不容易翻身做主人哪，我们要顶上半边天再抢他们的半边~~天！一时间，群情激愤，凶狠异常， 热闹非凡。但各位姐姐们阿姨们姑奶奶们，且听如月影说两句话，你们把这罪过都推到孔老人家身上，却是大大地冤枉了他了。</p>
<p>先根据当年老孔的处境，提出一个疑问：“孔老先生当时，为什么要说出“唯女子与小人难养也”这样的话？任何人说话都不会是无缘无故的，当 然，除了疯子，而我们的孔老先生应该不是疯子吧？而且这位孔老先生受《诗经》的影响很深，他说：“诗三百，一言以蔽之，思无邪”，他认为《诗经》是一部伟 大的著作，而我们再来看看这部孔子都很推崇的巨著，里边倒有很大一部分歌颂了女子的活泼美丽，大方善良，歌颂了当时男女平等的浪漫爱情氛围，事实也是这 样，在春秋时代，男女间是相当平等的，而孔夫子本人更是曾反复多次以诗经里的“妻子好合，如鼓瑟琴”来表达了自己对婚姻和女子的平等看待观点。所以，说孔 子歧视妇女，不仅和孔子的思想不符，更与当时的民间社会整个大环境对不上号，因此这个说法，实在是大大地有待商榷。</p>
<p>所以我们就要看看，孔子当初是在什么一种环境下说出“唯女子与小人难养也”这句话的？这话又是对谁说的？他一宗师级别的身份，不可能在路边 想着想着突然心情烦躁就开骂一八杆子打不着的妇女同志吧？在《史记·孔子世家》里，提到了孔子之前的卫国之行，孔子“居卫月余，灵公与夫人同车，宦者雍渠 参乘出，使孔子为次乘，招摇市过之。孔子曰：‘吾未见好德如好色者也。’于是丑之，去卫。”我来大致翻译一下这段话，当代全国教育劳模孔老先生受卫国国君 的邀请，来到了卫国参观学习休养，但在这期间，孔老先生突然发现自己被涮了，人家根本是拿他的身份来炫耀自己抬高自己而已，并不是真正支持他来这教化卫国 民众的，尤其是那个卫灵公的老婆，为了抬高自己的身望，公开炫耀，贬低了孔子，孔老先生那个郁闷啊，你卫灵公到底是喜欢德才多些，还是喜欢女色多些？在你 心里我和你老婆哪个重要？干醋自己吃完，依然没人鸟他，孔子怒了，说：“吾未见好德如好色者也！丢！此处不留爷，自有留爷处！GO，GO，GO！”收拾行 李就离开了卫国，离开之后，心情平复了，想起卫国公老婆那种仗着得宠，骄横跋扈乱政扰民的烂事儿，就发了感慨：“唯女子与小人难养也！近之则不孙，远之则 怨。”</p>
<p>你看，知道了这些历史背景和人生经历，孔子这话就很好理解了。我们知道，他骂的人是那种“被养”的女人和小人，女子还好说，可想想什么人才能养小 人？君主啊！再看看孔子的卫国之行，一切都明白了，他这话断不是发神经突然开骂起包括自己老妈在内的所有女人，而是有一个特指的对象，这个对象，就是卫灵 公那位老婆南子，就是那些“近之则不孙，远之则怨”的宫廷女权，近之则不孙，远之则怨，这后一句话怎么解释呢？就是说你作为一个君主，对那些后宫的女人和 没什么本事的拍马小人太亲近了，她们就会得意忘形，忘了自己的身份，开始用你的权力胡做非为，而你疏远她们吧，她们又要埋怨，总之是非常麻烦。此前没见过 什么宫廷里女人之间的斗争的孔子说出这话是可以理解的，他的担心也不是没有道理，孔子之前，妲己误国，烽火戏诸侯，这些事例还少吗？孔子之后，宦官小人当 道，皇后外戚乱政的桥段更是屡屡上演，不可枚数。所以我们的女性同胞们，你们要清楚，孔子当时没发神经把你们全天下的女人不分青红皂白地乱骂一通，别再憋 屈他老人家了~~</p>
<p>最后一个问题，那么是谁误传了这句话，让我们可爱的女性同胞被压迫了几千年之久呢？俗话说冤有头，债有主，如月影要帮孔老夫子平反，自然也 要再帮你们找到一个真正的罪魁祸首，让你们发泄出那几千年积下的怨恨(怎么说着说着象鬼片了-_-!)，好了，拉回正题，西汉的时候有一位所谓的“大儒” 董仲舒，此人大力主张“夫为妻纲”，就是这个家伙，借孔子的一句话断章取义，给广大的中华妇女头上戴上了千年的枷锁。看看这家伙在《基义》一书里提出的“ 三纲”：“君臣父子夫妻之义，皆与诸阴阳之道。君为阳，臣为阴；父为阳，子为阴；夫为阳，妻为阴。王道之三纲，可求于天。”他这东西就是一为讨好历任统治 者的马屁之作。“君为臣纲”，为历代皇帝所接受，渐渐形成了封建统治的一套准则，而“夫为妻纲”，则为历代男人所推崇。这“纲”是什么意思？君为臣纲，则 君要臣死，臣不得不死！知道这个“纲”的厉害了吧？你想想，各位苦命的女子没嫁人前都一可人的窈窕淑女，本来身份平等，嫁了人，就得时刻提心吊胆地按着老 公的这个“纲”过日子，这三纲五常，束缚了中国多少年，害了多少代人啊！</p>
<p>唯女子与小人难养也。</p>
<p>原句：唯女子与小人难养也，近之则不孙，远之则怨。</p>
<p>歪曲程度：6</p>
<p>反面影响：9</p>
<p>【5、吾生也有涯，而知也无涯。】</p>
<p>原句：吾生也有涯，而知也无涯，以有涯随无涯，殆已 ——————《庄子·养生主》</p>
<p>这句话是庄子说的，八卦一下，庄子此人，实在是如月影非常喜欢的一个人物，他的思想和性情，都非常十分很特别对我胃口，什么大家不爱听这 些？那算了，本来想抖点猛料让大家深入了解一下我这个好同志的……好了好了别扔鸡蛋，我说正事还不行吗？好，先来看看，“吾生也有涯，而知也无涯”，这句 话我们在什么地方见得最多呢？第一，是图书馆，第二，是全国各个小学的后墙上，按照现在人们的普遍理解，这句话实在是学习励志类的不二明言警句，生也有 涯，知也无涯，多崇高的目标啊，这比什么孔老夫子的“学而时习之不亦乐乎”都来得有气势多了，古往今来，不知道多少学子在这句话的激励下凿壁偷光闻鸡起舞 奋发图强追求上进读那些永远也读不完的书，动力啊，偶像啊，庄子七老八十还能说出这么振奋人心的话，咱年轻的小辈正当青春，怎么能输给他老人家？不狠狠地 读书怎么对得起他老人家？</p>
<p>但真相说出来，往往会让人哭笑不得，庄子的这句话其实是这样说的，“吾生也有涯，而知也无涯，以有涯随无涯，殆已。”我庄子的生命是有限 的，但我面对的知识是无限的，要我以本来有限的生命，去追求那种永远看不到边的尽头，你当我是SB吗？这样会搞死自己的捏~~庄子是一个追崇顺其自然，清 净无为的洒脱人物，他认为人吃个饭，饱了就行，没什么必要追求奢华，穿个衣，别冻着就行，实在不需与什么人攀比。同样，学问也是如此，学够了就行，学以致 用，学问学来就是为了用，你一个人再牛B，还能全部用到这世间所有的学问？既然不能用到，那你老学老学把自己整个生命都拿来学这是干啥呢？时间都被你拿来 学习了，还怎么有时间把学到的东西拿来用呢？这不就跟吃饭是为了炫耀穿衣是为了攀比的人一样，完全本末倒置了吗？所以他老人家就在《养生主》一书中给后世 陷入这个怪圈的书呆子们提了个醒，你们这样苦学盲学乱学通学，对身体不好滴，会搞死自己滴~~</p>
<p>当然，庄子的这句被人误解的话，其实并没有以上那些例子引起的反面作用那么大，读书是必须的，掌握一定的知识也是必须的，但咱们要记得自己把握好， 有个度。你就算用半辈子武装得自己学富五车，却发现很多知识你根本用不上，这不浪费了么？庄子从来都不认为一个人能比自然更大，这是他所有的话中唯一的主 题思想，实际上，就算我们拿现在的世界观来衡量一部《庄子》，仍能发现他的学说里，有许多是符合辨证唯物主义思想的。可叹的是，就是这么一位崇尚自然的思 想家，他一句劝解读书人适可而止循序渐进的话却被一些叫嚷着“人定胜天”的人当成了激励年轻人拼命读书的名言来供着，科举改成了高考，八股改成了应试教 育，于是大学生一年比一年多，可素质却一年比一年低下，最后整黄了吧？你看现在大学文凭都和废纸没什么两样了，这帮人还不醒悟，还是继续读，读完大学读硕 士，读完硕士读博士，读完博士读博士后……读完出来一看，嘿，好象我已经老了捏，很多知识也用不着捏，这不自己跟自己过不去么？最后再说一句私人的牢骚 话，最近我去图书馆，总看见一帮老头老太太天天在那侯着，一见有啥免费的学习班就往里钻，也根本不管别人老师是教着什么，各位老爷爷老奶奶们，听我这个后 辈说句话，您们这不瞎捣蛋么？赶时髦啊？摆个性哪？想让我们称赞下您啊？还是真打算活到老学到老啊？自个儿细细思量一下有什么意义么？能不能腾些地方给些 真正需要的人进去？M的连“量子力学基础浅谈”都有街道的老大妈在里边占着位置，我真是无语了……</p>
<p>吾生也有涯，而知也无涯。</p>
<p>原句：吾生也有涯，而知也无涯，以有涯随无涯，殆已</p>
<p>歪曲程度：8</p>
<p>反面影响：3</p>
<p>【6、相濡以沫】</p>
<p>原句：相濡以沫，不如相忘于江湖——————《庄子·大宗师》</p>
<p>说点轻松点的吧。</p>
<p>沿着伟大的思想家庄老爷子的足迹，我们再来看看另外一条咱们耳熟能详的名句：“相濡以沫”。</p>
<p>说起这句话，其实大有来头，我想大家都听过现在流行的一个词吧？江湖，这个“江湖”是从哪儿出来的呢？很多人以为最初是古龙小说里的一句“ 人在江湖，身不由己”，其实不然，江湖这个词最早的出处，便是在庄子说“相濡以沫”的这句话中。在《大宗师》篇中，庄子给我们讲了这么一个小故事：“泉 涸，鱼相与处于陆，相呴以湿，相濡以沫，不如相忘于江湖。”他说的是有一天，一眼泉水干了，两条小鱼被困在了一个小水洼，为了生存下去，它们彼此从嘴中吐 出泡泡，用自己的湿气来湿润对方的身体，互相扶持，互相依赖。但，与其在死亡边缘才这样互相扶持，还不如大家找到一条水路，开开心心地回到广阔的江河湖 海，回到各自的天地，彼此相忘，自由自在。</p>
<p>我们口口声声说的“江湖”就是这么来的，没想到吧？做下小广告哈，欢迎观看点评在下拙作：小说《书江湖》，不是什么特别牛B的书，主角比佐罗牛B一点而已，现正联系出版或许不日上市，先搜索来看一下也可以~~</p>
<p>恩，恩，回来，相濡以沫，多美的情景，虽然这并不是爱情最理想的状态。当年街道居委会的老大妈就算再没文化，这句话肯定是会说的，在我们的 父辈那个婚姻靠组织介绍的年代，这句话支撑了多少性格各异，却本没有多少感情基础的夫妻一直走到了今天，相濡以沫，多好的一个榜样啊，只是当年没曾想，只 是当年不知道，既然需要相濡以沫才能支撑，为什么却不干脆洒脱地放手，把自己，也把对方放开去找各自的幸福，去找各自的江湖呢？</p>
<p>相濡以沫，这句话的全部意思，又有多少人知道呢？</p>
<p>我有个大学的同学，是个陕西的女孩子，她在上学时找了个陕西的男朋友，她把自己的一切都给了他，当然包括了身体，可是那个懒惰的男朋友对她 很不好，常打她骂她象佣人一样地指使她，却又根本离不开她，我们惊奇的是，她竟然一直默默忍受了下来，一忍就是四年，我们忍不住问她，你们过得这么辛苦这 么难受，为什么还要在一起呢？她却这样回答：“嫁鸡随鸡，嫁狗随狗，虽然在一起不是很快乐，但这不就是相濡以沫吗？”</p>
<p>我无言，这能算是相濡以沫吗？为什么明明外边有更大的江湖，更宽广的天地，为什么明明知道知道自己有更好的未来，却要把双方都绑在一起，不开心地继 续过下去呢？我们都身处一个传统思维占据非常强势地位的社会，一句相濡以沫，不知道让多少爱情做了这种传统思维的牺牲品。其实想一想，如果自己都不开心， 别人的称赞又能怎么样？如果自己能找到属于自己的真正天地，别人的指责又能怎么样？唉，说大了，有点没边没际，父母也教育过我劝合不劝分的道理，这话题也 到此为止吧，劝合不劝分，相濡以沫啊，原来我也不能免俗。</p>
<p>只是叹息一声，我们都没曾想到，除了一句相濡以沫，原来后边，还可以相忘于江湖。</p>
<p>相濡以沫</p>
<p>原句：相濡以沫，不如相忘于江湖</p>
<p>歪曲程度：&#8211;</p>
<p>反面影响：&#8211;</p>
<p>【7：天地不仁，以万物为刍狗】</p>
<p>原句：天地不仁，以万物为刍狗，圣人不仁，以百姓为刍狗——————《道德经》</p>
<p>要说起这句话，大半的愤青都会告诉你，这话的意思是说：“天地残暴不仁，把万物都当成低贱的猪狗来看待，而那些高高在上的所谓圣人们也没两 样，还不是把我们老百姓也当成猪狗不如的东西！”标准的无政府主义宣言，标准的对社会不满。这句话在各种愤青的文章中，在当前下三流的网络YY小说里那是 随处可见，主角通常是弱小无助，饱受压迫和不公，于是有一天突然醒悟，大喊一声“天地不仁，以万物为刍狗！”立时或悟道飞升，或肉身成佛，或从一个人人可 以欺负的小瘪三变成一方霸主，等等等等，不一而足……</p>
<p>基本上，这些孩子的思维都可以总结为一种抑郁太久的被压迫感大爆发，就好象连老天都欠了他们个十万八万似的。可是呢？另一方面这帮无政府主 义的家伙又没胆子喊出什么“王侯将相宁有种乎”之类更牛B的话，更不敢扯出个大旗子大叫“苍天已死黄天当立！”最后，只好喊一喊这句“天地不仁，以万物为 刍狗”，以表达一种受到不公平待遇的憋屈。说实话，其实我挺同情这些人的，无政府主义没什么了不起，一个人在学生时代没有经历过无政府主义的阶段，基本上 可以被认为没有青春，我也经历过那种思想特别冲动觉得这世界上谁都跟自己过不去的时代，不同的是现在我知道了怨天尤人一点用都没有，社会是不公平，社会就 是这么吊不公平，如果你觉得社会不公平，你只有自己努力去改变这一切。</p>
<p>但就算我非常理解他们的青春年少，我还是有必要得跟这些后辈们说一句，你们这句话，其实恰好用错了。</p>
<p>天地不仁，以万物为刍狗，这根本不是你们从字面上理解的，说天地残暴不仁，把世间万物都看成猪狗，圣人不仁，以百姓为猪狗，也根本不是你们 想的那样说所谓高高在上的统治者们，把百姓看得低微卑贱。其实这句话的真正意思是说，天地不情感用事，对万物一视同仁，圣人不情感用事，对百姓一视同仁。 你们推崇的这句话，它的原意中根本没有你们所需要的压迫与歧视，却恰恰相反，它说的是一个公平的道理，我们所有的人，所有的众生在天地的眼中，都是平等 的，为什么现在你啃着干面包，别人却吃着海鲜大餐？孩子，在大叫不公平之前，为什么你不想想你是否和他流过一样的汗水？如果想不通，也行，那就别想了，为 什么你不尝试通过自己的努力，来稍微扭转一下这样的“不公”？只是大叫着不公平大叫着没天理大叫着等着天上掉个馅饼下来补偿你的委屈你的遗憾你正损失着的 一去不复返的青春年华，有用吗？</p>
<p>天地不仁，以万物为刍狗。</p>
<p>这一篇是写给那些迷茫孩子的，如果你理解错了这句话，你会陷入自己的监狱，不能自拔。如果你知道这句话的真正意思，我恭喜你，孩子，这时你才真正长大。</p>
<p>原文：http://history.qikoo.com/article/q6573533,4d073c,,1.html</p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2008/11/%e4%b8%ad%e5%9b%bd%e4%ba%ba%e8%af%af%e4%bc%a0%e5%8d%83%e5%b9%b4%e7%9a%84%e4%b8%83%e5%8f%a5%e8%af%9d%ef%bc%9a%e2%80%9c%e6%97%a0%e6%af%92%e4%b8%8d%e4%b8%88%e5%a4%ab%e2%80%9d%e6%9c%80%e7%a6%bb%e8%b0%b1z/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux 脚本里计算加减乘除(续)</title>
		<link>http://wyj.zhuwo.info/2008/08/linux-%e8%84%9a%e6%9c%ac%e9%87%8c%e8%ae%a1%e7%ae%97%e5%8a%a0%e5%87%8f%e4%b9%98%e9%99%a4%e7%bb%ad/</link>
		<comments>http://wyj.zhuwo.info/2008/08/linux-%e8%84%9a%e6%9c%ac%e9%87%8c%e8%ae%a1%e7%ae%97%e5%8a%a0%e5%87%8f%e4%b9%98%e9%99%a4%e7%bb%ad/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 09:28:45 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[linux应用]]></category>
		<category><![CDATA[技术为本]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=106</guid>
		<description><![CDATA[还是对unix/linux不够熟悉啊，bc这个强大的计算器我怎么能够忽略呢？用于科学计算，expr相对来说还是有点捉襟见肘的，比如浮点数的计算，expr就有些无能为力。bc的详细功能在手册里面都有了，这里简单介绍用法。 bc [ -hlwsqv ] [long-options] [  file ... ]s bc的输入是文件，如果在命令行想直接使用的话，就要用管道进行串联了。 echo &#8220;scale = 2; 5 / 2&#8243; &#124; bc -l 结果输出是：2.50。scale表示小数点后保留多少位。bc的其他强大的功能，参考手册吧。 对了，bash脚本可以直接实现自加，比如 i=1 echo $((++i))]]></description>
			<content:encoded><![CDATA[<p>还是对unix/linux不够熟悉啊，bc这个强大的计算器我怎么能够忽略呢？用于科学计算，expr相对来说还是有点捉襟见肘的，比如浮点数的计算，expr就有些无能为力。bc的详细功能在手册里面都有了，这里简单介绍用法。</p>
<ul>
<li>bc [ -hlwsqv ] [long-options] [  file ... ]s</li>
</ul>
<p>bc的输入是文件，如果在命令行想直接使用的话，就要用管道进行串联了。</p>
<ul>
<li>echo &#8220;scale = 2; 5 / 2&#8243; | bc -l</li>
</ul>
<p>结果输出是：2.50。scale表示小数点后保留多少位。bc的其他强大的功能，参考手册吧。</p>
<p>对了，bash脚本可以直接实现自加，比如</p>
<ul>
<li>i=1</li>
<li>echo $((++i))</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2008/08/linux-%e8%84%9a%e6%9c%ac%e9%87%8c%e8%ae%a1%e7%ae%97%e5%8a%a0%e5%87%8f%e4%b9%98%e9%99%a4%e7%bb%ad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux 脚本里计算加减乘除</title>
		<link>http://wyj.zhuwo.info/2008/08/linux-%e8%84%9a%e6%9c%ac%e9%87%8c%e8%ae%a1%e7%ae%97%e5%8a%a0%e5%87%8f%e4%b9%98%e9%99%a4/</link>
		<comments>http://wyj.zhuwo.info/2008/08/linux-%e8%84%9a%e6%9c%ac%e9%87%8c%e8%ae%a1%e7%ae%97%e5%8a%a0%e5%87%8f%e4%b9%98%e9%99%a4/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 09:58:43 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[linux应用]]></category>
		<category><![CDATA[技术为本]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=102</guid>
		<description><![CDATA[linux下面计算加减乘除，其实也就是一个小程序，名字是&#8221;expr&#8221;。这个程序很好用，不过有一点需要注意，就是不要忘了使用空格和转义，比如计算两个数的乘法，应该这样写： expr 1024 \* 1024 其实还是很简单的，这儿有份不错的参考文档，这个程序可不光能计算加减乘除哦，很多表达式，他都可以计算出结果。 expr 命令：http://study.chyangwa.com/IT/AIX/aixcmds2/expr.htm]]></description>
			<content:encoded><![CDATA[<p>linux下面计算加减乘除，其实也就是一个小程序，名字是&#8221;expr&#8221;。这个程序很好用，不过有一点需要注意，就是不要忘了使用空格和转义，比如计算两个数的乘法，应该这样写：</p>
<ul>
<li>expr 1024 \* 1024</li>
</ul>
<p>其实还是很简单的，这儿有份不错的参考文档，这个程序可不光能计算加减乘除哦，很多表达式，他都可以计算出结果。<br />
expr 命令：<a href="http://study.chyangwa.com/IT/AIX/aixcmds2/expr.htm">http://study.chyangwa.com/IT/AIX/aixcmds2/expr.htm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2008/08/linux-%e8%84%9a%e6%9c%ac%e9%87%8c%e8%ae%a1%e7%ae%97%e5%8a%a0%e5%87%8f%e4%b9%98%e9%99%a4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>bash 脚本 &#8211; 输出流重定向至错误流(stderr)</title>
		<link>http://wyj.zhuwo.info/2008/08/write_to_stderr/</link>
		<comments>http://wyj.zhuwo.info/2008/08/write_to_stderr/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 03:03:11 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[linux应用]]></category>
		<category><![CDATA[技术为本]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[stderr]]></category>
		<category><![CDATA[stdout]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=96</guid>
		<description><![CDATA[在C/C++里，都有各自的方法用于向错误流写数据。如： fprintf(stderr, &#8220;Hello World\n&#8221;); cerr &#60;&#60; &#8220;Hello World&#8221; &#60;&#60; endl; 在bash脚本里，可以用echo &#8220;Hello World&#8221;向标准输出写入数据，可如何像标准错误流写入数据呢？同样有两种方法： echo &#8220;Hello World&#8221; &#62;&#62; /dev/stderr echo &#8220;Hello World&#8221; &#62;&#38;2 测试的方法，以上命令任选其一写入一个脚本，假定命名为test.sh，执行 ./test.sh 2&#62; /tmp/test cat /tmp/test &#8220;Hello World&#8221;出来了吧？目前我还没发现能用一句命令来进行这个测试的，如果谁有，请别忘了指点一下。 非常感谢小椿和smzz的帮助。 参考链接：Bash的输入输出重定向]]></description>
			<content:encoded><![CDATA[<p>在C/C++里，都有各自的方法用于向错误流写数据。如：</p>
<ul>
<li>fprintf(stderr, &#8220;Hello World\n&#8221;);</li>
<li>cerr &lt;&lt; &#8220;Hello World&#8221; &lt;&lt; endl;</li>
</ul>
<p>在bash脚本里，可以用echo &#8220;Hello World&#8221;向标准输出写入数据，可如何像标准错误流写入数据呢？同样有两种方法：</p>
<ul>
<li>echo &#8220;Hello World&#8221; &gt;&gt; /dev/stderr</li>
<li>echo &#8220;Hello World&#8221; &gt;&amp;2<span id="more-96"></span></li>
</ul>
<p>测试的方法，以上命令任选其一写入一个脚本，假定命名为test.sh，执行</p>
<ul>
<li>./test.sh 2&gt; /tmp/test</li>
<li>cat /tmp/test</li>
</ul>
<p>&#8220;Hello World&#8221;出来了吧？目前我还没发现能用一句命令来进行这个测试的，如果谁有，请别忘了指点一下。</p>
<p>非常感谢小椿和<a href="http://smzz.org">smzz</a>的帮助。</p>
<p>参考链接：<a title="Bash的输入输出重定向" href="http://http://www.linux-wiki.cn/index.php/Bash的输入输出重定向">Bash的输入输出重定向</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2008/08/write_to_stderr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>pure-ftpd 浏览器访问时弹出登录框</title>
		<link>http://wyj.zhuwo.info/2008/08/pure-ftpd/</link>
		<comments>http://wyj.zhuwo.info/2008/08/pure-ftpd/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 04:02:19 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[linux应用]]></category>
		<category><![CDATA[技术为本]]></category>
		<category><![CDATA[网络应用]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=94</guid>
		<description><![CDATA[安装了pure-ftpd，限制了匿名用户的登录，可是在用浏览器直接输入地址回车后，没有出现提示输入用户名和密码的登录框，而是需要直接指定用户名或者右键点击登陆。这样用起来会有点不太方便，还是google搜到了解决办法，只是一个配置项的设置问题。 # 兼容ie等比较非正规化的ftp客户端 BrokenClientsCompatibility yes 这样就可以了，看着弹出来的提示框，爽！！ 参考链接： http://hi.baidu.com/jufeis/blog/item/5ec6840a50f20b1c94ca6bd5.html http://forum.ubuntu.org.cn/viewtopic.php?t=28052&#38;highlight=pure-ftpd]]></description>
			<content:encoded><![CDATA[<p>安装了pure-ftpd，限制了匿名用户的登录，可是在用浏览器直接输入地址回车后，没有出现提示输入用户名和密码的登录框，而是需要直接指定用户名或者右键点击登陆。这样用起来会有点不太方便，还是google搜到了解决办法，只是一个配置项的设置问题。</p>
<p># 兼容ie等比较非正规化的ftp客户端<br />
BrokenClientsCompatibility yes</p>
<p>这样就可以了，看着弹出来的提示框，爽！！</p>
<p>参考链接：</p>
<p>http://hi.baidu.com/jufeis/blog/item/5ec6840a50f20b1c94ca6bd5.html</p>
<p>http://forum.ubuntu.org.cn/viewtopic.php?t=28052&amp;highlight=pure-ftpd</p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2008/08/pure-ftpd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>debian/ubuntu中如何阻止软件包的升级(转载)</title>
		<link>http://wyj.zhuwo.info/2008/08/how-to-prevent-a-package-from-being-updated-in-ubuntu-debianhtml/</link>
		<comments>http://wyj.zhuwo.info/2008/08/how-to-prevent-a-package-from-being-updated-in-ubuntu-debianhtml/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 02:36:00 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[linux应用]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=90</guid>
		<description><![CDATA[If you want to update all the packages other than one package in your Ubuntu system follow this procedure There are three ways of holding back packages, with dpkg, aptitude or with dselect. Using dpkg Put a package on hold &#8230; <a href="http://wyj.zhuwo.info/2008/08/how-to-prevent-a-package-from-being-updated-in-ubuntu-debianhtml/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you want to update all the packages other than one package in your Ubuntu system follow this procedure There are three ways of holding back packages, with dpkg, aptitude or with dselect.</p>
<p><strong>Using dpkg</strong></p>
<p>Put a package on hold</p>
<p>sudo echo “package hold” | dpkg <code>--set-selections</code></p>
<p>Example<span id="more-90"></span></p>
<p>sudo echo “apache2 hold” | dpkg <code>--set-selections</code></p>
<p>Remove the hold</p>
<p>sudo echo “package install” | dpkg <code>--set-selections</code></p>
<p>Example</p>
<p>sudo echo “apache2 install” | dpkg <code>--set-selections</code></p>
<p>Knowing the status of your packages</p>
<p>sudo dpkg <code>--set-selections</code></p>
<p><strong>Using aptitude</strong></p>
<p>With aptitude, you can hold a package using</p>
<p>sudo aptitude hold package_name</p>
<p>Example</p>
<p>sudo aptitude hold apache2</p>
<p>and remove the hold with</p>
<p>sudo aptitude unhold package_name</p>
<p>Example</p>
<p>sudo aptitude unhold apache2</p>
<p><strong>Using dselect</strong></p>
<p>With dselect, you just have to enter the [S]elect screen, find the package you wish to hold in its present state, and press the `=’ key (or `H’). The changes will go live immediately after you exit the [S]elect screen.</p>
<p>来源：<a class="wp-caption" title="How to prevent a package from being updated in Ubuntu" rel="bookmark" href="http://www.ubuntugeek.com/how-to-prevent-a-package-from-being-updated-in-ubuntu.html">How to prevent a package from being updated in Ubuntu</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2008/08/how-to-prevent-a-package-from-being-updated-in-ubuntu-debianhtml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何合并文本文件</title>
		<link>http://wyj.zhuwo.info/2008/08/%e5%a6%82%e4%bd%95%e5%90%88%e5%b9%b6%e6%96%87%e6%9c%ac%e6%96%87%e4%bb%b6/</link>
		<comments>http://wyj.zhuwo.info/2008/08/%e5%a6%82%e4%bd%95%e5%90%88%e5%b9%b6%e6%96%87%e6%9c%ac%e6%96%87%e4%bb%b6/#comments</comments>
		<pubDate>Sat, 09 Aug 2008 09:05:21 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[技术为本]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=87</guid>
		<description><![CDATA[今天部门一个同事提了一个需求，要把若干个txt格式的文本文件合并在一起。需求看起来很简单，我的第一反应是写一个脚本实现这个功能，可是下午事情多，写脚本的时间也没有。于是用更便捷的方法，网络和同学帮助找到了若干个答案，很快解决了真个问题。 借助于Word：将所有的文本文件置于同一个文件夹中，打开Word并新建一个空白文档，然后单击菜单“插入→文件”，在弹出的对话框中将“文件类型”设置为“文本文件”，最后将所有要合并的文本文件全部添加进来即可。 借助于copy命令：同样将所有的文本文档拷贝到同一个文件夹，打开命令行控制台，切换到存放文本文件的目录，再使用命令“copy *.txt c:\merged.txt”（c:\merged.txt为存放目标文件的路径及合并后的文件名）。 linux下面也可以实现，cat *.txt &#62; c:\merged.txt 值得注意的是，第一种合并文本的方式会自动在各个子文本内容之间插入换行符，而其他两种都不行。]]></description>
			<content:encoded><![CDATA[<p>今天部门一个同事提了一个需求，要把若干个txt格式的文本文件合并在一起。需求看起来很简单，我的第一反应是写一个脚本实现这个功能，可是下午事情多，写脚本的时间也没有。于是用更便捷的方法，网络和同学帮助找到了若干个答案，很快解决了真个问题。</p>
<ol>
<li>借助于Word：将所有的文本文件置于同一个文件夹中，打开Word并新建一个空白文档，然后单击菜单“插入→文件”，在弹出的对话框中将“文件类型”设置为“文本文件”，最后将所有要合并的文本文件全部添加进来即可。</li>
<li>借助于copy命令：同样将所有的文本文档拷贝到同一个文件夹，打开命令行控制台，切换到存放文本文件的目录，再使用命令“copy *.txt c:\merged.txt”（c:\merged.txt为存放目标文件的路径及合并后的文件名）。</li>
<li>linux下面也可以实现，cat *.txt &gt; c:\merged.txt</li>
</ol>
<p>值得注意的是，第一种合并文本的方式会自动在各个子文本内容之间插入换行符，而其他两种都不行。</p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2008/08/%e5%a6%82%e4%bd%95%e5%90%88%e5%b9%b6%e6%96%87%e6%9c%ac%e6%96%87%e4%bb%b6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VIM自动给脚本加注释(转载)</title>
		<link>http://wyj.zhuwo.info/2008/08/vim%e8%87%aa%e5%8a%a8%e7%bb%99%e8%84%9a%e6%9c%ac%e5%8a%a0%e6%b3%a8%e9%87%8a%e8%bd%ac%e8%bd%bd/</link>
		<comments>http://wyj.zhuwo.info/2008/08/vim%e8%87%aa%e5%8a%a8%e7%bb%99%e8%84%9a%e6%9c%ac%e5%8a%a0%e6%b3%a8%e9%87%8a%e8%bd%ac%e8%bd%bd/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 03:35:03 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[C&C++]]></category>
		<category><![CDATA[linux应用]]></category>
		<category><![CDATA[技术为本]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=85</guid>
		<description><![CDATA[写程序的时候给代码注释有时候蛮烦人的，尤其是用英文写注释的时候，不过养成写注释的习惯，对日后代码的维护还是很有帮助的，一般脚本的开头会注明编写时间，版本，用途等说明。 VIM 里面可以使用映射(map)来帮你自动插入这些信息，就像下面这样 #**************************************************** #         Author: Muddyboot &#8211; toobyddum@gmail.com #  Last modified: 2007-08-10 21:19 #       Filename: /etc/vimrc #    Description: Configuration for vim editor #**************************************************** 其中 Last modified 后面的时间是根据当前时间自动插入的，Filename 后的文件名也是当前编辑的文件名。 我们的目的是在VIM的命令模式下面，按下fuck 4个字符，自动在文件的开头插入上面的信息，这就需要在VIM的配置文件中定义关于 fuck 的map指令 为了方便，先定义一个函数 function AddTitle() call setline(1,&#8221;#****************************************************&#8221;) call append(1,&#8221;#         &#8230; <a href="http://wyj.zhuwo.info/2008/08/vim%e8%87%aa%e5%8a%a8%e7%bb%99%e8%84%9a%e6%9c%ac%e5%8a%a0%e6%b3%a8%e9%87%8a%e8%bd%ac%e8%bd%bd/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>写程序的时候给代码注释有时候蛮烦人的，尤其是用英文写注释的时候，不过养成写注释的习惯，对日后代码的维护还是很有帮助的，一般脚本的开头会注明编写时间，版本，用途等说明。</p>
<p>VIM 里面可以使用映射(map)来帮你自动插入这些信息，就像下面这样</p>
<p>#****************************************************<br />
#         Author: Muddyboot &#8211; toobyddum@gmail.com<br />
#  Last modified: 2007-08-10 21:19<br />
#       Filename: /etc/vimrc<br />
#    Description: Configuration for vim editor<br />
#****************************************************</p>
<p>其中 Last modified 后面的时间是根据当前时间自动插入的，Filename 后的文件名也是当前编辑的文件名。<span id="more-85"></span></p>
<p>我们的目的是在VIM的命令模式下面，按下fuck 4个字符，自动在文件的开头插入上面的信息，这就需要在VIM的配置文件中定义关于 fuck 的map指令</p>
<p>为了方便，先定义一个函数</p>
<p>function AddTitle()<br />
call setline(1,&#8221;#****************************************************&#8221;)<br />
call append(1,&#8221;#         Author: Muddyboot &#8211; toobyddum@gmail.com&#8221;)<br />
call append(2,&#8221;#  &#8221; . &#8220;Last modified: &#8221; . strftime(&#8220;%Y-%m-%d %H:%M&#8221;))<br />
call append(3,&#8221;#       Filename: &#8221; . expand(&#8220;%&#8221;))<br />
call append(4,&#8221;#    Description: &#8220;)<br />
call append(5,&#8221;#****************************************************&#8221;)<br />
endf</p>
<p>函数用 function 关键字开头，函数名的第一个字母需要大写<br />
setline 表示在第一行插入 #********<br />
append 表示追加行，expand表示展开变量的值，%代表文件名，strftime 表示当前时间</p>
<p>然后定义 map 规则：</p>
<p>map fuck &lt;esc&gt;:call AddTitle()&lt;cr&gt;&lt;esc&gt;:$&lt;esc&gt;o</p>
<p>&lt;esc&gt;表示按&lt;ESC&gt;键，&lt;cr&gt;表示回车，上面的指令的意思是在文件开头加入注释，然后跳到文件末尾，进入输入模式。</p>
<p>OK，很简单吧~~~~~~</p>
<p>好，当你对一个脚本修改后，需要更新 Last modified 时间怎么办，手动吗？当然不用这么麻烦~~~~</p>
<p>同样可以指定一个 map 规则，比如 shit</p>
<p>map shit &lt;esc&gt;:/# *Last modified: /s@:.*$@\=strftime(&#8220;: %Y-%m-%d %H:%M&#8221;)@&lt;cr&gt;</p>
<p>让我们一步一步分析上面规则的意思：</p>
<p>/# *Last modified: / 表示查找以 # 开头，后面跟上一些空格，然后是 Last modified: 的行，也就是上面插入注释的第2行<br />
s@&#8230;.@@ 表示替换<br />
第一个 @&#8230;.@ 中间的内容，表示原来的时间，<br />
第二个 @&#8230;.@ 是新的当前时间，由于这个时间是动态的，需要调用函数，故在@后需要用 \= 来告诉 s 命令<br />
\= 后面的代码是一个表达式，其值就是当前时间<br />
最后一个 &lt;cr&gt; 代表回车，也就是执行这个替换操作</p>
<p>好了，现在，你只要按下fuck，VIM会自动行首插入注释，如果下次你修改了文件，按下shit，注释中的最后更改时间则会自动同步到当前时间，再一次感受到了VIM的强大功能了吧 ！</p>
<p>BTW, 当然，你可以使用其他的map名字，不一定非要 fuck 和 shit，偶用它们，不过是觉得好记罢了~~~~</p>
<p>转自：http://blog.chinaunix.net/u/6542/showart.php?id=357716</p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2008/08/vim%e8%87%aa%e5%8a%a8%e7%bb%99%e8%84%9a%e6%9c%ac%e5%8a%a0%e6%b3%a8%e9%87%8a%e8%bd%ac%e8%bd%bd/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>如何在C/C++代码中执行一个DOS命令（Win平台）</title>
		<link>http://wyj.zhuwo.info/2008/07/%e5%a6%82%e4%bd%95%e5%9c%a8cc%e4%bb%a3%e7%a0%81%e4%b8%ad%e6%89%a7%e8%a1%8c%e4%b8%80%e4%b8%aados%e5%91%bd%e4%bb%a4%ef%bc%88win%e5%b9%b3%e5%8f%b0%ef%bc%89/</link>
		<comments>http://wyj.zhuwo.info/2008/07/%e5%a6%82%e4%bd%95%e5%9c%a8cc%e4%bb%a3%e7%a0%81%e4%b8%ad%e6%89%a7%e8%a1%8c%e4%b8%80%e4%b8%aados%e5%91%bd%e4%bb%a4%ef%bc%88win%e5%b9%b3%e5%8f%b0%ef%bc%89/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 03:34:15 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[C&C++]]></category>
		<category><![CDATA[技术为本]]></category>
		<category><![CDATA[ShellExecute]]></category>
		<category><![CDATA[WinExec]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=59</guid>
		<description><![CDATA[简单来说可以有三种方式可以实现： int system( const char *command ). UINT WinExec( LPCSTR lpCmdLine, UINT uCmdShow ). HINSTANCE ShellExecute( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd ). 这三种函数都可以创建一个新的进程，具体的函数定义请查看MSDN，里面说的很清楚。这里要说明的是如何执行一个DOS命令，比如 mkdir 。第一个函数很简单，直接把命令用字符串表示作为参数传入即可，如：&#8221;mkdir D:\\temp\\test&#8221;。后面两个就不太一样了，参数应该为&#8221;cmd /c mkdir D:\\temp\\test&#8221;。比如WinExec(&#8220;cmd /c mkdir D:\\temp\\test&#8221;, SW_HIDE). 和 ShellExecute(NULL, &#8220;open&#8221;, &#8220;cmd /c mkdir&#8221;, &#8220;D:\\temp\\test&#8221;, &#8230; <a href="http://wyj.zhuwo.info/2008/07/%e5%a6%82%e4%bd%95%e5%9c%a8cc%e4%bb%a3%e7%a0%81%e4%b8%ad%e6%89%a7%e8%a1%8c%e4%b8%80%e4%b8%aados%e5%91%bd%e4%bb%a4%ef%bc%88win%e5%b9%b3%e5%8f%b0%ef%bc%89/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>简单来说可以有三种方式可以实现：</p>
<ol>
<li>int system( const char *<span class="parameter">command</span> ).</li>
<li>UINT WinExec( LPCSTR lpCmdLine, UINT uCmdShow ).</li>
<li>HINSTANCE ShellExecute( HWND <em>hwnd</em>, LPCTSTR <em>lpOperation</em>, LPCTSTR <em>lpFile</em>, LPCTSTR <em>lpParameters</em>, LPCTSTR <em>lpDirectory</em>, INT <em>nShowCmd</em> ).<span id="more-59"></span></li>
</ol>
<p>这三种函数都可以创建一个新的进程，具体的函数定义请查看MSDN，里面说的很清楚。这里要说明的是如何执行一个DOS命令，比如 mkdir 。第一个函数很简单，直接把命令用字符串表示作为参数传入即可，如：&#8221;mkdir D:\\temp\\test&#8221;。后面两个就不太一样了，参数应该为&#8221;cmd /c mkdir D:\\temp\\test&#8221;。比如WinExec(&#8220;cmd /c mkdir D:\\temp\\test&#8221;, SW_HIDE).  和 ShellExecute(NULL, &#8220;open&#8221;, &#8220;cmd /c mkdir&#8221;, &#8220;D:\\temp\\test&#8221;, NULL, SW_HIDE). 这样就可以了。我也是试了好久，没有搞定，最后还是求助于搜索，才得解。</p>
<p>[参考链接]：http://topic.csdn.net/t/20031023/01/2385175.html</p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2008/07/%e5%a6%82%e4%bd%95%e5%9c%a8cc%e4%bb%a3%e7%a0%81%e4%b8%ad%e6%89%a7%e8%a1%8c%e4%b8%80%e4%b8%aados%e5%91%bd%e4%bb%a4%ef%bc%88win%e5%b9%b3%e5%8f%b0%ef%bc%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用 pidgin(gaim) 上 Gtalk 和 MSN</title>
		<link>http://wyj.zhuwo.info/2008/06/%e7%94%a8-pidgingaim-%e4%b8%8a-gtalk-%e5%92%8c-msn/</link>
		<comments>http://wyj.zhuwo.info/2008/06/%e7%94%a8-pidgingaim-%e4%b8%8a-gtalk-%e5%92%8c-msn/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 07:35:07 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[技术为本]]></category>
		<category><![CDATA[网络应用]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=39</guid>
		<description><![CDATA[pidgin 是 Linux-Gnome桌面环境下的一个多协议即时通信客户端，用它可以上 Gtalk, MSN, QQ。它有界面简洁，标签式聊天窗口，可同时登录多个IM等诸多优点，我很喜欢这个软件，在Win下也用基于GTK的pidgin 移植版。用它怎么上Gtalk和MSN等呢，我就不多说了，不难。我这里要说的是如何不用5222端口上gtalk，不用1863端口上MSN。其实也很简单哦： Gtalk，很简单，同时选中Force old SSL和Allow plaintext auth over unencrypted streams两个选项，端口修改为443。 MSN，更简单，选中Use HTTP Method 当5222和1863两个端口被封了的时候，这个方法还是很有用的哦。 参考：Pidgin 连接 Google Talk 的配置]]></description>
			<content:encoded><![CDATA[<p><a title="pidgin 主页" href="http://www.pidgin.im/" target="_blank" title="pidgin 主页">pidgin</a> 是 Linux-Gnome桌面环境下的一个多协议即时通信客户端，用它可以上 Gtalk, MSN, QQ。它有界面简洁，标签式聊天窗口，可同时登录多个IM等诸多优点，我很喜欢这个软件，在Win下也用基于GTK的<a title="pidgin 主页" href="http://www.pidgin.im/" target="_blank" title="pidgin 主页">pidgin</a> 移植版。用它怎么上Gtalk和MSN等呢，我就不多说了，不难。我这里要说的是如何不用5222端口上gtalk，不用1863端口上MSN。其实也很简单哦：</p>
<ul>
<li>Gtalk，很简单，同时选中Force old SSL和Allow plaintext auth over unencrypted streams两个选项，端口修改为443。</li>
<li>MSN，更简单，选中Use HTTP Method</li>
</ul>
<p>当5222和1863两个端口被封了的时候，这个方法还是很有用的哦。</p>
<p>参考：<a title="Pidgin 连接 Google Talk 的配置 " href="http://linuxtoy.org/archives/configure-pidgin-for-google-talk.html" title="Pidgin 连接 Google Talk 的配置 ">Pidgin 连接 Google Talk 的配置</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2008/06/%e7%94%a8-pidgingaim-%e4%b8%8a-gtalk-%e5%92%8c-msn/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>搜狐拼音输入法之双拼方案设置</title>
		<link>http://wyj.zhuwo.info/2008/06/%e6%90%9c%e7%8b%90%e6%8b%bc%e9%9f%b3%e8%be%93%e5%85%a5%e6%b3%95%e4%b9%8b%e5%8f%8c%e6%8b%bc%e6%96%b9%e6%a1%88%e8%ae%be%e7%bd%ae/</link>
		<comments>http://wyj.zhuwo.info/2008/06/%e6%90%9c%e7%8b%90%e6%8b%bc%e9%9f%b3%e8%be%93%e5%85%a5%e6%b3%95%e4%b9%8b%e5%8f%8c%e6%8b%bc%e6%96%b9%e6%a1%88%e8%ae%be%e7%bd%ae/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 07:17:51 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[技术为本]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=56</guid>
		<description><![CDATA[搜狗拼音输入法我在几年前就接触到了，但是真正坚持用下来，也就是这几个月的事情。在同事的建议之下，我学会了双拼，上手有点难度，几经周折总算也坚持到了现在。开始用双拼我选的是“自然码”的双拼方案，并且也已经习惯了。搜狗的双拼方案也有“自然码”的，但是设置和我以前用的不太一样。我习惯统一用O+韵母来输出单韵母的字，可是搜狗的“自然码”方案却不行。想自定义，可是搜狗的自定义做的很烂，相当不好用。无奈之下我打开了搜狗的安装目录，看看能不能直接进行配置。还好，搜狗使用ini的配置文件对双频方案进行配置的，这下自定义方便多了。下面是我修改过的自然码双拼方案。 [声母] zh=V ch=I sh=U empty=O [韵母] iu=Q ua=W ia=W uan=R er=R ue=T v=V ve=T uai=Y ing=Y uo=O un=P vn=P iong=S ong=S uang=D iang=D en=F eng=G ang=H an=J ao=K ai=L ei=Z ie=X iao=C ui=V ou=B in=N ian=M [零声母音节的韵母] a=OA ai=OL &#8230; <a href="http://wyj.zhuwo.info/2008/06/%e6%90%9c%e7%8b%90%e6%8b%bc%e9%9f%b3%e8%be%93%e5%85%a5%e6%b3%95%e4%b9%8b%e5%8f%8c%e6%8b%bc%e6%96%b9%e6%a1%88%e8%ae%be%e7%bd%ae/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>搜狗拼音输入法我在几年前就接触到了，但是真正坚持用下来，也就是这几个月的事情。在同事的建议之下，我学会了双拼，上手有点难度，几经周折总算也坚持到了现在。开始用双拼我选的是“自然码”的双拼方案，并且也已经习惯了。搜狗的双拼方案也有“自然码”的，但是设置和我以前用的不太一样。我习惯统一用O+韵母来输出单韵母的字，可是搜狗的“自然码”方案却不行。想自定义，可是搜狗的自定义做的很烂，相当不好用。无奈之下我打开了搜狗的安装目录，看看能不能直接进行配置。还好，搜狗使用ini的配置文件对双频方案进行配置的，这下自定义方便多了。下面是我修改过的自然码双拼方案。<span id="more-56"></span></p>
<p>[声母]<br />
zh=V<br />
ch=I<br />
sh=U<br />
empty=O</p>
<p>[韵母]<br />
iu=Q<br />
ua=W<br />
ia=W<br />
uan=R<br />
er=R<br />
ue=T<br />
v=V<br />
ve=T<br />
uai=Y<br />
ing=Y<br />
uo=O<br />
un=P<br />
vn=P<br />
iong=S<br />
ong=S<br />
uang=D<br />
iang=D<br />
en=F<br />
eng=G<br />
ang=H<br />
an=J<br />
ao=K<br />
ai=L<br />
ei=Z<br />
ie=X<br />
iao=C<br />
ui=V<br />
ou=B<br />
in=N<br />
ian=M</p>
<p>[零声母音节的韵母]<br />
a=OA<br />
ai=OL<br />
an=OJ<br />
ang=OH<br />
ao=OK<br />
e=OE<br />
ei=OZ<br />
en=OF<br />
;eng=OG<br />
er=OR<br />
o=OO<br />
ou=OB</p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2008/06/%e6%90%9c%e7%8b%90%e6%8b%bc%e9%9f%b3%e8%be%93%e5%85%a5%e6%b3%95%e4%b9%8b%e5%8f%8c%e6%8b%bc%e6%96%b9%e6%a1%88%e8%ae%be%e7%bd%ae/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>设置 WordPress 的 feeds (RSS)输出格式</title>
		<link>http://wyj.zhuwo.info/2008/05/%e8%a8%ad%e5%ae%9a-wordpress-%e7%9a%84-feeds-%e8%bc%b8%e5%87%ba%e6%a0%bc%e5%bc%8f/</link>
		<comments>http://wyj.zhuwo.info/2008/05/%e8%a8%ad%e5%ae%9a-wordpress-%e7%9a%84-feeds-%e8%bc%b8%e5%87%ba%e6%a0%bc%e5%bc%8f/#comments</comments>
		<pubDate>Sat, 24 May 2008 14:24:52 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[网络应用]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=55</guid>
		<description><![CDATA[通过Google Reader订阅了自己的Blog，发现本来好好的格式在Google Reader面目全非了，所有的文字都挤在一块儿，连回车换行都没有了。奇怪啊，找遍了WordPress的设置，也没有解决问题。后来再smzz的帮助下，根据一篇博文提供的方法修改了一下设置，由 Options » Reading 进入设置页面，将 Syndication Feeds 下的 For each article, show: 设定为：Full Text 后保存就可以了。修改了之后，没有立即生效，smzz说可能是WordPress有缓存的问题。希望从这篇博文之后RSS输出格式能如愿正确显示。]]></description>
			<content:encoded><![CDATA[<p>通过<a href="http://reader.google.com" target="_blank">Google Reader</a>订阅了自己的Blog，发现本来好好的格式在<a href="http://reader.google.com" target="_blank">Google Reader</a>面目全非了，所有的文字都挤在一块儿，连回车换行都没有了。奇怪啊，找遍了<a href="http://wordpress.org/">WordPress</a>的设置，也没有解决问题。后来再<a href="http://smzz.org/blog" target="_blank">smzz</a>的帮助下，根据一篇<a href="http://blog.chweng.idv.tw/archives/351" target="_blank">博文</a>提供的方法修改了一下设置，由 <em>Options</em> » <em>Reading</em> 进入设置页面，将 <em>Syndication Feeds</em> 下的 <em>For each article, show:</em> 设定为：<em>Full Text</em> 后保存就可以了。修改了之后，没有立即生效，<a href="http://smzz.org/blog">smzz</a>说可能是<a href="http://wordpress.org/">WordPress</a>有缓存的问题。希望从这篇博文之后RSS输出格式能如愿正确显示。</p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2008/05/%e8%a8%ad%e5%ae%9a-wordpress-%e7%9a%84-feeds-%e8%bc%b8%e5%87%ba%e6%a0%bc%e5%bc%8f/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>为什么预编译头(Precompiled Header)能够提高编译速度？</title>
		<link>http://wyj.zhuwo.info/2008/05/%e4%b8%ba%e4%bb%80%e4%b9%88%e9%a2%84%e7%bc%96%e8%af%91%e5%a4%b4precompiled-header%e8%83%bd%e5%a4%9f%e6%8f%90%e9%ab%98%e7%bc%96%e8%af%91%e9%80%9f%e5%ba%a6%ef%bc%9f/</link>
		<comments>http://wyj.zhuwo.info/2008/05/%e4%b8%ba%e4%bb%80%e4%b9%88%e9%a2%84%e7%bc%96%e8%af%91%e5%a4%b4precompiled-header%e8%83%bd%e5%a4%9f%e6%8f%90%e9%ab%98%e7%bc%96%e8%af%91%e9%80%9f%e5%ba%a6%ef%bc%9f/#comments</comments>
		<pubDate>Sat, 24 May 2008 10:19:58 +0000</pubDate>
		<dc:creator>王永杰</dc:creator>
				<category><![CDATA[C&C++]]></category>
		<category><![CDATA[为什么？]]></category>
		<category><![CDATA[技术为本]]></category>

		<guid isPermaLink="false">http://wyj.zhuwo.info/?p=54</guid>
		<description><![CDATA[上一篇博客我解释了“为什么可以引用未包含的头文件内容？”，这也让我想起了另外一个问题：“为什么预编译头(Precompiled Header)能够提高编译速度？”。既然要刨根问底，不妨再解释一下这个问题。其实呢，只要理解“编译 &#8211; 链接”这两个步骤各自的作用和一般编译器提高编译速度的方式，那这个问题是小菜一碟啊。 编译(Compile)——把每个源码文件编译成二进制文件（一般是obj）。链接(Link)——把所有的Obj文件堆积木一样组织在一起，形成了DLL、EXE等类型的目标文件。 一般来说，如果一个文件所依赖的所有项如头文件等都没有修改过，那么该文件就不需要重新编译。不管是makefile还是VC的project通过检测依赖关系，减少重新编译的代码量来提高编译速度的。 那么就不难理解为什么预编译头能够提高编译速度了。如果StdAfx.h里面的头文件在每一份实现文件里面都重新包含了一遍，那么每一次实现文件的修改都会导致该文件的重新编译，因而所包含的头文件都要展开一次用于重新编译，无疑会放慢编译速度。然而，如果将公用而不常修改的头文件置于StdAfx.h里面，那么编译器会在第一次遇到StdAfx.h的时候将它编译解释生成stdafx.obj和一个PCH文件，以后再遇到StdAfx.h的时候就会直接使用PCH文件，而不会重新编译了。对于MFC和SDK几万行的头文件来说，速度当然会有大大提高啦。]]></description>
			<content:encoded><![CDATA[<p><a href="http://wyj.zhuwo.info/2008/05/24/%e4%b8%ba%e4%bb%80%e4%b9%88%e5%8f%af%e4%bb%a5%e5%bc%95%e7%94%a8%e6%9c%aa%e5%8c%85%e5%90%ab%e7%9a%84%e5%a4%b4%e6%96%87%e4%bb%b6%e5%86%85%e5%ae%b9%ef%bc%9f/#more-53">上一篇博客</a>我解释了“<a title="为什么可以引用未包含的头文件内容？" href="http://wyj.zhuwo.info/2008/05/24/%e4%b8%ba%e4%bb%80%e4%b9%88%e5%8f%af%e4%bb%a5%e5%bc%95%e7%94%a8%e6%9c%aa%e5%8c%85%e5%90%ab%e7%9a%84%e5%a4%b4%e6%96%87%e4%bb%b6%e5%86%85%e5%ae%b9%ef%bc%9f/">为什么可以引用未包含的头文件内容？</a>”，这也让我想起了另外一个问题：“为什么预编译头(Precompiled Header)能够提高编译速度？”。既然要刨根问底，不妨再解释一下这个问题。其实呢，只要理解“编译 &#8211; 链接”这两个步骤各自的作用和一般编译器提高编译速度的方式，那这个问题是小菜一碟啊。</p>
<p><span id="more-54"></span>编译(Compile)——把每个源码文件编译成二进制文件（一般是obj）。链接(Link)——把所有的Obj文件堆积木一样组织在一起，形成了DLL、EXE等类型的目标文件。</p>
<p>一般来说，如果一个文件所依赖的所有项如头文件等都没有修改过，那么该文件就不需要重新编译。不管是makefile还是VC的project通过检测依赖关系，减少重新编译的代码量来提高编译速度的。</p>
<p>那么就不难理解为什么预编译头能够提高编译速度了。如果StdAfx.h里面的头文件在每一份实现文件里面都重新包含了一遍，那么每一次实现文件的修改都会导致该文件的重新编译，因而所包含的头文件都要展开一次用于重新编译，无疑会放慢编译速度。然而，如果将公用而不常修改的头文件置于StdAfx.h里面，那么编译器会在第一次遇到StdAfx.h的时候将它编译解释生成stdafx.obj和一个PCH文件，以后再遇到StdAfx.h的时候就会直接使用PCH文件，而不会重新编译了。对于MFC和SDK几万行的头文件来说，速度当然会有大大提高啦。</p>
]]></content:encoded>
			<wfw:commentRss>http://wyj.zhuwo.info/2008/05/%e4%b8%ba%e4%bb%80%e4%b9%88%e9%a2%84%e7%bc%96%e8%af%91%e5%a4%b4precompiled-header%e8%83%bd%e5%a4%9f%e6%8f%90%e9%ab%98%e7%bc%96%e8%af%91%e9%80%9f%e5%ba%a6%ef%bc%9f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
