Linux文件查找命令find,xargs详述(转帖)

转自:(http://docs.chinalinuxpub.com/read.php?wid=1230)

想删除工程中的CVS文件和文件夹,查了一下网上,基本的东西都是差不多的,就是这篇帖子才解决问题。为什么?因为这篇文章多了一句话:“相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。”

我没有在{}和\;之间加空格,结果是费了不少时间。感谢原作者的贡献。

我前面的命令为:

find . -name "*CVS*" -exec rm -fr {} \;

转帖正文:

×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

Linux文件查找命令find,xargs详述

发布于2006-06-12 被读1665次 【字体:大 中 小】

版权声明

本文是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

按照文件权限来查找文件。

-prune

使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。

-user

按照文件属主来查找文件。

-group

按照文件所属的组来查找文件。

-mtime -n +n

按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。

-nogroup

查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。

-nouser

查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。

-newer file1 ! file2

查找更改时间比文件file1新但比文件file2旧的文件。

-type

查找某一类型的文件,诸如:

b - 块设备文件。

d - 目录。

c - 字符设备文件。

p - 管道文件。

l - 符号链接文件。

f - 普通文件。

-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。

-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。

-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。

-mount:在查找文件时不跨越文件系统mount点。

-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。

-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

另外,下面三个的区别:

   -amin n

  查找系统中最后N分钟访问的文件

  -atime n

  查找系统中最后n*24小时访问的文件

  -cmin n

  查找系统中最后N分钟被改变文件状态的文件

  -ctime n

  查找系统中最后n*24小时被改变文件状态的文件

    -mmin n

  查找系统中最后N分钟被改变文件数据的文件

  -mtime n

  查找系统中最后n*24小时被改变文件数据的文件

4、使用exec或ok来执行shell命令

使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的

在有些操作系统中只允许-exec选项执行诸如l s或ls -l这样的命令。大多数用户使用这一选项是为了查找旧文件并删除它们。建议在真正执行rm命令删除文件之前,最好先用ls命令看一下,确认它们是所要删除的文件。

exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。为了使用exec选项,必须要同时使用print选项。如果验证一下find命令,会发现该命令只输出从当前路径起的相对路径及文件名。

例如:为了用ls -l命令列出所匹配到的文件,可以把ls -l命令放在find命令的-exec选项中

# find . -type f -exec ls -l { } \;

-rw-r--r-- 1 root root 34928 2003-02-25 ./conf/httpd.conf

-rw-r--r-- 1 root root 12959 2003-02-25 ./conf/magic

-rw-r--r-- 1 root root 180 2003-02-25 ./conf.d/README

上面的例子中,find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出。

在/logs目录中查找更改时间在5日以前的文件并删除它们:

 $ find logs -type f -mtime +5 -exec rm { } \;

记住:在shell中用任何方式删除文件之前,应当先查看相应的文件,一定要小心!当使用诸如mv或rm命令时,可以使用-exec选项的安全模式。它将在对每个匹配到的文件进行操作之前提示你。

在下面的例子中, find命令在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。

 $ find . -name "*.conf" -mtime +5 -ok rm { } \;

< rm ... ./conf/httpd.conf > ? n

按y键删除文件,按n键不删除。

任何形式的命令都可以在-exec选项中使用。

在下面的例子中我们使用grep命令。find命令首先匹配所有文件名为“ passwd*”的文件,例如passwd、passwd.old、passwd.bak,然后执行grep命令看看在这些文件中是否存在一个sam用户。

# find /etc -name "passwd*" -exec grep "sam" { } \;

sam:x:501:501::/usr/sam:/bin/bash

二、find命令的例子;

1、查找当前用户主目录下的所有文件:

下面两种方法都可以使用

 $ find  $HOME -print

 $ find ~ -print

2、让当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件;

 $ find . -type f -perm 644 -exec ls -l { } \;

3、为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径;

 $ find / -type f -size 0 -exec ls -l { } \;

4、查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们;

 $ find /var/logs -type f -mtime +7 -ok rm { } \;

5、为了查找系统中所有属于root组的文件;

 $find . -group root -exec ls -l { } \;

-rw-r--r-- 1 root root 595 10月 31 01:09 ./fie1

6、find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.log文件。

该命令只检查三位数字,所以相应文件的后缀不要超过999。先建几个admin.log*的文件 ,才能使用下面这个命令

 $ find . -name "admin.log[0-9][0-9][0-9]" -atime -7 -ok

rm { } \;

< rm ... ./admin.log001 > ? n

< rm ... ./admin.log002 > ? n

< rm ... ./admin.log042 > ? n

< rm ... ./admin.log942 > ? n

7、为了查找当前文件系统中的所有目录并排序;

 $ find . -type d | sort

8、为了查找系统中所有的rmt磁带设备;

 $ find /dev/rmt -print

三、xargs

xargs - build and execute command lines from standard input

在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。

find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。

在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;

而使用xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。

来看看xargs命令是如何同find命令一起使用的,并给出一些例子。

下面的例子查找系统中的每一个普通文件,然后使用xargs命令来测试它们分别属于哪类文件

#find . -type f -print | xargs file

./.kde/Autostart/Autorun.desktop: UTF-8 Unicode English text

./.kde/Autostart/.directory: ISO-8859 text\

......

在整个系统中查找内存信息转储文件(core dump) ,然后把结果保存到/tmp/core.log 文件中:

 $ find / -name "core" -print | xargs echo "" >/tmp/core.log

上面这个执行太慢,我改成在当前目录下查找

#find . -name "file*" -print | xargs echo "" > /temp/core.log

# cat /temp/core.log

./file6

在当前目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限:

# ls -l

drwxrwxrwx 2 sam adm 4096 10月 30 20:14 file6

-rwxrwxrwx 2 sam adm 0 10月 31 01:01 http3.conf

-rwxrwxrwx 2 sam adm 0 10月 31 01:01 httpd.conf

# find . -perm -7 -print | xargs chmod o-w

# ls -l

drwxrwxr-x 2 sam adm 4096 10月 30 20:14 file6

-rwxrwxr-x 2 sam adm 0 10月 31 01:01 http3.conf

-rwxrwxr-x 2 sam adm 0 10月 31 01:01 httpd.conf

用grep命令在所有的普通文件中搜索hostname这个词:

# find . -type f -print | xargs grep "hostname"

./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

用grep命令在当前目录下的所有普通文件中搜索hostnames这个词:

# find . -name \* -type f -print | xargs grep "hostnames"

./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命令中的*在shell中的特殊含义。

find命令配合使用exec和xargs可以使用户对所匹配到的文件执行几乎所有的命令。

四、find 命令的参数

下面是find一些常用参数的例子,有用到的时候查查就行了,像上面前几个贴子,都用到了其中的的一些参数,也可以用man或查看论坛里其它贴子有find的命令手册

1、使用name选项

文件名选项是find命令最常用的选项,要么单独使用该选项,要么和其他选项一起使用。

可以使用某种文件名模式来匹配文件,记住要用引号将文件名模式引起来。

不管当前路径是什么,如果想要在自己的根目录 $HOME中查找文件名符合*.txt的文件,使用~作为 'pathname'参数,波浪号~代表了你的 $HOME目录。

 $ find ~ -name "*.txt" -print

想要在当前目录及子目录中查找所有的‘ *.txt’文件,可以用:

 $ find . -name "*.txt" -print

想要的当前目录及子目录中查找文件名以一个大写字母开头的文件,可以用:

 $ find . -name "[A-Z]*" -print

想要在/etc目录中查找文件名以host开头的文件,可以用:

 $ find /etc -name "host*" -print

想要查找 $HOME目录中的文件,可以用:

 $ find ~ -name "*" -print 或find . -print

要想让系统高负荷运行,就从根目录开始查找所有的文件。

 $ find / -name "*" -print

如果想在当前目录查找文件名以两个小写字母开头,跟着是两个数字,最后是.txt的文件,下面的命令就能够返回名为ax37.txt的文件:

 $find . -name "[a-z][a-z][0--9][0--9].txt" -print

2、用perm选项

按照文件权限模式用-perm选项,按文件权限模式来查找文件的话。最好使用八进制的权限表示法。

如在当前目录下查找文件权限位为755的文件,即文件属主可以读、写、执行,其他用户可以读、执行的文件,可以用:

 $ find . -perm 755 -print

还有一种表达方法:在八进制数字前面要加一个横杠-,表示都匹配,如-007就相当于777,-006相当于666

# ls -l

-rwxrwxr-x 2 sam adm 0 10月 31 01:01 http3.conf

-rw-rw-rw- 1 sam adm 34890 10月 31 00:57 httpd1.conf

-rwxrwxr-x 2 sam adm 0 10月 31 01:01 httpd.conf

drw-rw-rw- 2 gem group 4096 10月 26 19:48 sam

-rw-rw-rw- 1 root root 2792 10月 31 20:19 temp

# find . -perm 006

# find . -perm -006

./sam

./httpd1.conf

./temp

-perm mode:文件许可正好符合mode

-perm +mode:文件许可部分符合mode

-perm -mode: 文件许可完全符合mode

3、忽略某个目录

如果在查找文件时希望忽略某个目录,因为你知道那个目录中没有你所要查找的文件,那么可以使用-prune选项来指出需要忽略的目录。在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略。

如果希望在/apps目录下查找文件,但不希望在/apps/bin目录下查找,可以用:

 $ find /apps -path "/apps/bin" -prune -o -print

4、使用find查找文件的时候怎么避开某个文件目录

比如要在/usr/sam目录下查找不在dir1子目录之内的所有文件

find /usr/sam -path "/usr/sam/dir1" -prune -o -print

find [-path ..] [expression] 在路径列表的后面的是表达式

-path "/usr/sam" -prune -o -print 是 -path "/usr/sam" -a -prune -o

-print 的简写表达式按顺序求值, -a 和 -o 都是短路求值,与 shell 的 && 和 || 类似如果 -path "/usr/sam" 为真,则求值 -prune , -prune 返回真,与逻辑表达式为真;否则不求值 -prune,与逻辑表达式为假。如果 -path "/usr/sam" -a -prune 为假,则求值 -print ,-print返回真,或逻辑表达式为真;否则不求值 -print,或逻辑表达式为真。

这个表达式组合特例可以用伪码写为

if -path "/usr/sam" then

          -prune

else

          -print

避开多个文件夹

find /usr/sam \( -path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -print

圆括号表示表达式的结合。

\ 表示引用,即指示 shell 不对后面的字符作特殊解释,而留给 find 命令去解释其意义。

查找某一确定文件,-name等选项加在-o 之后

#find /usr/sam \(-path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -name "temp" -print

5、使用user和nouser选项

按文件属主查找文件,如在 $HOME目录中查找文件属主为sam的文件,可以用:

 $ find ~ -user sam -print

在/etc目录下查找文件属主为uucp的文件:

 $ find /etc -user uucp -print

为了查找属主帐户已经被删除的文件,可以使用-nouser选项。这样就能够找到那些属主在/etc/passwd文件中没有有效帐户的文件。在使用-nouser选项时,不必给出用户名; find命令能够为你完成相应的工作。

例如,希望在/home目录下查找所有的这类文件,可以用:

 $ find /home -nouser -print

6、使用group和nogroup选项

就像user和nouser选项一样,针对文件所属于的用户组, find命令也具有同样的选项,为了在/apps目录下查找属于gem用户组的文件,可以用:

 $ find /apps -group gem -print

要查找没有有效所属用户组的所有文件,可以使用nogroup选项。下面的find命令从文件系统的根目录处查找这样的文件

 $ find / -nogroup-print

7、按照更改时间或访问时间等查找文件

如果希望按照更改时间来查找文件,可以使用mtime,atime或ctime选项。如果系统突然没有可用空间了,很有可能某一个文件的长度在此期间增长迅速,这时就可以用mtime选项来查找这样的文件。

用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。

希望在系统根目录下查找更改时间在5日以内的文件,可以用:

 $ find / -mtime -5 -print

为了在/var/adm目录下查找更改时间在3日以前的文件,可以用:

 $ find /var/adm -mtime +3 -print

8、查找比某个文件新或旧的文件

如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项。它的一般形式为:

newest_file_name ! oldest_file_name

其中,!是逻辑非符号。

查找更改时间比文件sam新但比文件temp旧的文件:

例:有两个文件

-rw-r--r-- 1 sam adm 0 10月 31 01:07 fiel

-rw-rw-rw- 1 sam adm 34890 10月 31 00:57 httpd1.conf

-rwxrwxr-x 2 sam adm 0 10月 31 01:01 httpd.conf

drw-rw-rw- 2 gem group 4096 10月 26 19:48 sam

-rw-rw-rw- 1 root root 2792 10月 31 20:19 temp

# find -newer httpd1.conf ! -newer temp -ls

1077669 0 -rwxrwxr-x 2 sam adm 0 10月 31 01:01 ./httpd.conf

1077671 4 -rw-rw-rw- 1 root root 2792 10月 31 20:19 ./temp

1077673 0 -rw-r--r-- 1 sam adm 0 10月 31 01:07 ./fiel

查找更改时间在比temp文件新的文件:

 $ find . -newer temp -print

9、使用type选项

在/etc目录下查找所有的目录,可以用:

 $ find /etc -type d -print

在当前目录下查找除目录以外的所有类型的文件,可以用:

 $ find . ! -type d -print

在/etc目录下查找所有的符号链接文件,可以用

 $ find /etc -type l -print

10、使用size选项

可以按照文件长度来查找文件,这里所指的文件长度既可以用块(block)来计量,也可以用字节来计量。以字节计量文件长度的表达形式为N c;以块计量文件长度只用数字表示即可。

在按照文件长度查找文件时,一般使用这种以字节表示的文件长度,在查看文件系统的大小,因为这时使用块来计量更容易转换。

在当前目录下查找文件长度大于1 M字节的文件:

 $ find . -size +1000000c -print

在/home/apache目录下查找文件长度恰好为100字节的文件:

 $ find /home/apache -size 100c -print

在当前目录下查找长度超过10块的文件(一块等于512字节):

 $ find . -size +10 -print

11、使用depth选项

在使用find命令时,可能希望先匹配所有的文件,再在子目录中查找。使用depth选项就可以使find命令这样做。这样做的一个原因就是,当在使用find命令向磁带上备份文件系统时,希望首先备份所有的文件,其次再备份子目录中的文件。

在下面的例子中, find命令从文件系统的根目录开始,查找一个名为CON.FILE的文件。

它将首先匹配所有的文件然后再进入子目录中查找。

 $ find / -name "CON.FILE" -depth -print

12、使用mount选项

在当前的文件系统中查找文件(不进入其他文件系统),可以使用find命令的mount选项。

从当前目录开始查找位于本文件系统中文件名以XC结尾的文件:

 $ find . -name "*.XC" -mount -print

五、关于本文

本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量的例证,让初学者更为容易理解;本文是zhy2111314兄贴在论坛中;我对本文进行了再次整理,为方便大家阅读; ── 北南南北

                                     --转帖完毕

301重定向技术汇总(转)

301重定向技术:(转自:http://www.jetdown.com/Article/118/Jet_Article_37861_1.html

使用 Response.Redirect "51windows.asp" 转向方法的HTTP Status Code 为302

下面是301转向的代码:

asp:

Response.Status="301 Moved Permanently"

Response.AddHeader "Location", "http://www.51windows.net/"

Response.End

Php:

header("HTTP/1.1 301 Moved Permanently");

header("Location:http://www.51windows.net/);

exit();

ASP.NET:

<script runat="server">

private void Page_Load(object sender, System.EventArgs e)

{

Response.Status = "301 Moved Permanently";

Response.AddHeader("Location","http://www.51windows.net/);

}

</script>

jsp如何实现网页的重定向 (转摘自:http://www.designxf.com/Article/200509/1639.htm)

更新时间:2005-9-22  责任编辑:Jacky  资讯来源:网络采集  阅读次数:63

先锋设计联盟 Http://Www.Designxf.com Http://Www.designunion.cn

1.可以使用:

  response.sendRedirect("http://www.foo.com/path/error.html");

  2.可以手工修改HTTP header的Location属性,如下:

<%

response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);

String newLocn = "/newpath/index.html";

response.setHeader("Location",newLocn);

%>

  3.也可以使用forward:

  <jsp:forward page="/newpage.jsp" />

  请注意:只能在任何输出还没有发送到客户端之前使用这种方式。

  5.6 类似global.asa的做法

  在javascript/" target="_blank">JSP中没有global.asa的对应物。但可以有一个workaround来运行。例如,如果你需要存储或存取application scope变量,你总是可以创建一个Javabean,并在页面中需要这些变量的地方将它包含进来。

<jsp:useBean id="globals" scope="application" class="com.xxx.GlobalBean"/>

  但是,也有一些产品具有这样的对应:

  Allaire公司的产品JRun 3.0将提供global.jsa。JRun 2.3.3仍然给予支持,但只对javascript/" target="_blank">JSP 0.92。当JRun 3.0最终推出时它将支持用于javascript/" target="_blank">JSP 1.0和1.1的global.jsa。

  你可以从http://beta.allaire.com/jrun30得到JRun 3.0 beta 5

  另外,Oracle的javascript/" target="_blank">JSP支持globals.jsa。

十个有哲理的故事(转帖)

转自:(http://www.javaresearch.org/article/showarticle.jsp?column=46&thread=56760

转帖正文:

××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

十个有哲理的故事

yqi_xian 转贴  (参与分:4920,专家分:490)   发表:2006-10-17 13:52   版本:1.0   阅读:317次

1、陈阿土

  陈阿土是台湾的农民,从来没有出过远门。攒了半辈子的钱,终于参加一个旅游团出了国。国外的一切都是非常新鲜的,关键是,陈阿土参加的是豪华团,一个人住一个标准间。这让他新奇不已。早晨,服务生来敲门送早餐时大声说道:“GOODMORNINGSIR!”陈阿土愣住了。这是什么意思呢?在自己的家乡,一般陌生的人见面都会问:“您贵姓?”于是陈阿土大声叫道:“我叫陈阿土!”如是这般,连着三天,都是那个服务生来敲门,每天都大声说: “GOODMORNINGSIR!”而陈阿土亦大声回道:“我叫陈阿土!”但他非常的生气。这个服务生也太笨了,天天问自己叫什么,告诉他又记不住,很烦的。终于他忍不住去问导游,“GOODMORNINGSIR!”是什么意思,导游告诉了他,天啊!!真是丢脸死了。陈阿土反复练习 “GOODMORNINGSIR!”这个词,以便能体面地应对服务生。又一天的早晨,服务生照常来敲门,门一开陈阿土就大声叫道: “GOODMORNINGSIR!”与此同时,服务生叫的是:“我是陈阿土!”

  这个故事告诉我们,人与人交往,常常是意志力与意志力的较量。不是你影响他,就是他影响你,而我们要想成功,一定要培养自己的影响力,只有影响力大的人才可以成为最强者。

  2、表演大师

  有一位表演大师上场前,他的弟子告诉他鞋带松了。大师点头致谢,蹲下来仔细系好。等到弟子转身后,又蹲下来将鞋带解松。有个旁观者看到了这一切,不解地问:“大师,您为什么又要将鞋带解松呢?”大师回答道:“因为我饰演的是一位劳累的旅者,长途跋涉让他的鞋事松开,可以通过这个细节表现他的劳累憔悴.” “那你为什么不直接告诉你的弟子呢?”“他能细心地发现我的鞋带松了,并且热心地告诉我,我一定要保护他这种热情的积极性,及时地给他鼓励,至于为什么要将鞋带解开,将来会有更多的机会教他表演,可以下一次再说啊。”

  人一个时间只能做一件事,懂抓重点,才是真正的人才。

  3、鹦鹉

  一个人去买鹦鹉,看到一只鹦鹉前标:此鹦鹉会两门语言,售价二百元。另一只鹦鹉前则标道:此鹦鹉会四门语言,售价四百元。该买哪只呢?两只都毛色光鲜,非常灵活可爱。这人转啊转,拿不定主意。结果突然发现一只老掉了牙的鹦鹉,毛色暗淡散乱,标价八百元。这人赶紧将老板叫来:这只鹦鹉是不是会说八门语言?店主说:不。这人奇怪了:那为什么又老又丑,又没有能力,会值这个数呢?店主回答:因为另外两只鹦鹉叫这只鹦鹉老板。

  这故事告诉我们,真正的领导人,不一定自己能力有多强,只要懂信任,懂放权,懂珍惜,就能团结比自己更强的力量,从而提升自己的身价。相反许多能力非常强的人却因为过于完美主义,事必躬亲,什么人都不如自己,最后只能做最好的攻关人员,销售代表,成不了优秀的领导人。

  4、金人

  曾经有个小国的人到中国来,进贡了三个一模一样的金人,金壁辉煌,把皇帝高兴坏了。可是这小国的人不厚道,同时出一道题目:这三个金人哪个最有价值?皇帝想了许多的办法,请来珠宝匠检查,称重量,看做工,都是一模一样的。怎么办?使者还等着回去汇报呢。泱泱大国,不会连这个小事都不懂吧?最后,有一位退位的老大臣说他有办法。皇帝将使者请到大殿,老臣胸有成足地拿着三根稻草,插入第一个金人的耳朵里,这稻草从另一边耳朵出来了。第二个金人的稻草从嘴巴里直接掉出来,而第三个金人,稻草进去后掉进了肚子,什么响动也没有。老臣说:第三个金人最有价值!使者默默无语,答案正确。

  这个故事告诉我们,最有价值的人,不一定是最能说的人。老天给我们两只耳朵一个嘴巴,本来就是让我们多听少说的。善于倾听,才是成熟的人最基本的素质。

  5、辞职

  A对B说:“我要离开这个公司。我恨这个公司!”B建议道:“我举双手赞成你报复!!破公司一定要给它点颜色看看。不过你现在离开,还不是最好的时机。”A问:为什么?B说:“如果你现在走,公司的损失并不大。你应该趁着在公司的机会,拼命去为自己拉一些客户,成为公司独挡一面的人物,然后带着这些客户突然离开公司,公司才会受到重大损失,非常被动。”A觉得B说的非常在理。于是努力工作,事遂所愿,半年多的努力工作后,他有了许多的忠实客户。再见面时B问A:现在是时机了,要跳赶快行动哦!A淡然笑道:老总跟我长谈过,准备升我做总经理助理,我暂时没有离开的打算了。

  其实这也正是B的初衷。一个人的工作,永远只是为自己的简历。只有付出大于得到,让老板真正看到你的能力大于位置,才会给你更多的机会替他创造更多利润。

  6、选择

  有三个人要被关进监狱三年,监狱长给他们三个一人一个要求。美国人爱抽雪茄,要了三箱雪茄。法国人最浪漫,要一个美丽的女子相伴。而犹太人说,他要一部与外界沟通的电话。三年过后,第一个冲出来的是美国人,嘴里鼻孔里塞满了雪茄,大喊道:“给我火,给我火!”原来他忘了要火了。接着出来的是法国人。只见他手里抱着一个小孩子,美丽女子手里牵着一个小孩子,肚子里还怀着第三个。最后出来的是犹太人,他紧紧握住监狱长的手说:“这三年来我每天与外界联系,我的生意不但没有停顿,反而增长了200%,为了表示感谢,我送你一辆劳施莱斯!”

  这个故事告诉我们,什么样的选择决定什么样的生活。今天的生活是由三年前我们的选择决定的,而今天我们的抉择将决定我们三年后的生活。我们要选择接触最新的信息,了解最新的趋势,从而更好的创造自己的将来。

  7、老虎

  两个人在森林里,遇到了一只大老虎。A就赶紧从背后取下一双更轻便的运动鞋换上。B急死了,骂道:“你干嘛呢,再换鞋也跑不过老虎啊!”A说:“我只要跑得比你快就好了。”

  二十一世纪,没有危机感是最大的危机。特别是入关在即,电信,银行,保险,甚至是公务员这些我们以为非常稳定和有保障的企业,也会面临许多的变数。当更多的老虎来临时,我们有没有准备好自己的跑鞋?

  8、赶考

  有位秀才第三次进京赶考,住在一个经常住的店里。考试前两天他做了三个梦,第一个梦是梦到自己在墙上种白菜,第二个梦是下雨天,他戴了斗笠还打伞,第三个梦是梦到跟心爱的表妹脱光了衣服躺在一起,但是背靠着背。这三个梦似乎有些深意,秀才第二天就赶紧去找算命的解梦。算命的一听,连拍大腿说:“你还是回家吧。你想想,高墙上种菜不是白费劲吗?戴斗笠打雨伞不是多此一举吗?跟表妹都脱光了躺在一张床上了,却背靠背,不是没戏吗?”秀才一听,心灰意冷,回店收拾包袱准备回家。店老板非常奇怪,问:“不是明天才考试吗,今天你怎么就回乡了?”秀才如此这般说了一番,店老板乐了:“哟,我也会解梦的。我倒觉得,你这次一定要留下来。你想想,墙上种菜不是高种吗?戴斗笠打伞不是说明你这次有备无患吗?跟你表妹脱光了背靠靠躺在床上,不是说明你翻身的时候就要到了吗?”秀才一听,更有道理,于是精神振奋地参加考试,居然中了个探花。

  积极的人,象太阳,照到哪里哪里亮,消极的人,象月亮,初一十五不一样。想法决定我们的生活,有什么样的想法,就有什么样的未来。

  9、骆驼

  在动物园里的小骆驼问妈妈:“妈妈妈妈,为什么我们的睫毛那么地长?”骆驼妈妈说:“当风沙来的时候,长长的睫毛可以让我们在风暴中都能看得到方向。” 小骆驼又问:“妈妈妈妈,为什么我们的背那么驼,丑死了!”骆驼妈妈说:“这个叫驼峰,可以帮我们储存大量的水和养分,让我们能在沙漠里耐受十几天的无水无食条件。”小骆驼又问:“妈妈妈妈,为什么我们的脚掌那么厚?”骆驼妈妈说:“那可以让我们重重的身子不至于陷在软软的沙子里,便于长途跋涉啊。”小骆驼高兴坏了:“哗,原来我们这么有用啊!!可是妈妈,为什么我们还在动物园里,不去沙漠远足呢?”

  天生我才必有用,可惜现在没人用。一个好的心态+一本成功的教材+一个无限的舞台=成功。每人的潜能是无限的,关键是要找到一个能充分发挥潜能的舞台。

  10、分粥

  有七个人曾经住在一起,每天分一大桶粥。要命的是,粥每天都是不够的。一开始,他们抓阄决定谁来分粥,每天轮一个。于是乎每周下来,他们只有一天是饱的,就是自己分粥的那一天。后来他们开始推选出一个道德高尚的人出来分粥。强权就会产生腐败,大家开始挖空心思去讨好他,贿赂他,搞得整个小团体乌烟障气。然后大家开始组成三人的分粥委员会及四人的评选委员会,但他们常常互相攻击,扯皮下来,粥吃到嘴里全是凉的。最后想出来一个方法:轮流分粥,但分粥的人要等其它人都挑完后拿剩下的最后一碗。为了不让自己吃到最少的,每人都尽量分得平均,就算不平,也只能认了。大家快快乐乐,和和气气,日子越过越好。

  同样是七个人,不同的分配制度,就会有不同的风气。所以一个单位如果有不好的工作习气,一定是机制问题,一定是没有完全公平公正

公开,没有严格的奖勤罚懒。如何制订这样一个制度,是每个领导需要考虑的问题。

                                                        --转帖完毕

Apollo for Eclipse 1.0 Released(Eclipse的UML建模插件)(转)

转自: Gentleware Newsletter(因为他们的产品起源于ArgoUML,所以我对他们有些关注,也可以练习英语:))

这封邮件讲的是Gentleware公司的Eclipse的UML建模插件Apollo正式版发布。

有几个新闻点可以注意一下:

1、有30天的免费试用期

2、他们加入了Eclipse基金会

3、有无版权限制的版本提供,但是没有模型输出选项

4、Poseidon for UML Version 5 在年底前发行

邮件正文:

 Gentleware Newsletter

Some spam filters and email servers may block all or part of newsletters or may require sender verification. To be sure that you receive the complete newsletter with no delay, please add the email address 'newsletter@gentleware.com' to your address book.

 

Apollo for Eclipse 1.0 Released

Dear Poseidon User,

It's a new age here at Gentleware, and this is the very last newsletter that will be addressed only to Poseidon users, lest we leave out our dear new Apollo users. That's right, the wait is over... Apollo for Eclipse, the newest modeling tool from Gentleware, has been launched!

Read on to find out more...

»  Apollo 1.0 ==>

»  Free 30-Day Trial =>

»  New Licensing =>

»  Eclipse Foundation =>

»  Poseidon 5.0 =>

http://www.gentleware.com/

Design element: 4 blue boxes

 

Apollo for Eclipse 1.0 - Official Release

Apollo for Eclipse is a modeling tool for programmers and developers who want to flexibly combine the advantages of visual modeling using UML with Java programming. Fully synchronized roundtrip engineering employs the latest releases of UML 2.1 and Java 5 to provide an instant visualization of any existing Java code through UML class diagrams, and likewise propagate changes to the UML model throughout the code.

The tool fully integrates into the Eclipse environment, which makes it easy for developers to view code as models, and vice versa.

Features include:

    * Forward, reverse, and roundtrip engineering

    * Support for Java 5

    * Support for UML 2.1

    * Superior class diagram handling

    * Available as a stand-alone Rich Client Platform or as an extension to Eclipse

»  Download Apollo for Eclipse version 1.0 =>

Design element: 4 blue boxes

 

Apollo for Eclipse 30 Day Trial - No Obligation

Try all of the features of Apollo for Eclipse free for 30 days. Sign up for a our special Trial Package, you can cancel completely cost-free and obligation-free at any time during the first 30 days. More information is available from our website.

»  Read details of the trial offer =>

Design element: 4 blue boxes

 

New Licensing Structure

Apollo for Eclipse licenses are available to rent, much like web services. You can rent a license for a single period or on a continuing subscription basis. This licensing model allows professional organizations to deploy Apollo for Eclipse as they need to, and for a lower cost.

An unlicensed version of Apollo for Eclipse is also available, just download and start working. Export options are disabled in the unlicensed version.

This licensing structure will apply to the Community Edition of Poseidon for UML, beginning with the release of version 5.

»  Find out more about Apollo for Eclipse licensing =>

Design element: 4 blue boxes

 

Gentleware Joins Eclipse Foundation

Gentleware has selected the Eclipse IDE for both in-house development and as a platform for Apollo for Eclipse and future products. To support this effort, Gentleware has joined the Eclipse Foundation as an Add-In provider.

»  Read more about Gentleware in the Eclipse Foundation =>

Design element: 4 blue boxes

 

Poseidon for UML Version 5 - Coming Soon

The addition of Apollo for Eclipse to the offerings of Gentleware doesn't mean the end of Poseidon for UML. A new major release of Poseidon for UML is coming before the end of the year, so keep watching for upcoming announcements.

Design element: 4 blue boxes

 

Best regards,

Marko Boger

CEO

Gentleware Logo

 

Design element: 4 blue boxes

Contact   Terms of Use   Privacy Policy

© 2000-2006 by Gentleware AG

If you no longer wish to receive these emails, please reply to this message with "Unsubscribe" in the subject line or simply click on the following link: Unsubscribe

Gentleware AG

Ludwigstrasse 12

20357 Hamburg

Germany

Read the VerticalResponse marketing policy.

不要以高尚的道德帽子,提高人们做"好事"的门槛(转)

转自:(http://www.1kg.cn/bbs/viewtopic.php?t=1281

有个和孔子有关的故事:

   鲁国之法,鲁人为人臣妾於诸侯,有能赎之者,取其金於府。子贡赎鲁人於诸侯,来而让,不取其金。孔子曰:"赐失之矣。自今以往,鲁人不赎人矣。取其金,则无损於行;不取其金,则不复赎人矣。"《吕氏春秋 察微》

子路拯人于溺,其人谢之以牛,子路受之。孔子喜曰:自今鲁国多拯人于溺矣。

找到一个翻译(原文:http://www.vegsky.com/Article/ArticleShow.asp?ArticleID=3187

第一则翻译成白话文:春秋时代,鲁国有这样一条法规:凡是鲁国人到其他国家去旅行,看到有鲁国人沦为奴隶,可以自己垫钱把他先赎回,待回鲁国后到官府去报销。官府用国库的钱支付赎金,并给予一定的奖励。子贡到国外去,恰好碰到有一个鲁国人在那里做奴隶,就掏钱赎出了他。回国以后这个学生既没有张扬,也没去报销所垫付的赎金。那个被赎回的人把情况讲给众人,人们都称赞这个学生仗义,人格高尚。一时间,街头巷尾都把这件事当作美谈。孔子知道了这件事,不仅没有表扬这个学生,还对他进行了严厉的批评,责怪他犯了一个有违社会大道的错误,是只为小义而不顾大道。

孔子指出:由于这个学生没有到官府去报销赎金而被人们称赞为品格高尚,那么其他的人在国外看到鲁国人沦为奴隶,就要对是否垫钱把他赎出来产生犹豫。因为垫钱把他赎出来再去官府报销领奖,人们就会说自己不仗义,不高尚;不去官府报销,自己的损失谁来补。于是,多一事不如少一事,只好假装没看见,从客观上讲,这个学生的行为妨碍了更多的在外国做奴隶的鲁国人被赎买回来。

第二则是讲,有人掉进水里,亲人在岸上喊,如果能救上他的,就送恩人一头牛以作报酬,子路听到马上跳下水救起那个人,高兴地接受了报酬。其他人觉得子路贪小利。孔子却表扬了他。说你为大家做了一个榜样,今后再有人遇到险情,大家都会奋不顾身,整个国家就会有许多人因此而得救。权利与义务是对等的,既然行善,没有必要害怕获得相应的权利。

明代的袁子凡对这两则故事有过精辟的论述:自俗眼观之,子贡不受金为优,子路之受牛为劣;孔子则取由而黜赐焉。乃知人之为善,不论现行而论流弊;不论一时而论久远;不论一身而论天下。现行虽善,而其流足以害人;则似善而实非也;现行虽不善,而其流足以济人,则非善而实是也;然此就一节论之耳。他如非义之义,非礼之礼,非信之信,非慈之慈,皆当抉择。

看TechWeb的祝志军怎么对待他网站的用户(转摘)

转摘自:(http://tech.qq.com/a/20061012/000400_2.htm

【主持人】 我还想问一下,现在社区中互动这方面谈的比较多,包括我们自己在做内容的时候,也会考虑如何更好地做互动,您在这方面有没有什么经验跟大家分享。

【祝志军】 交互来讲要把用户当人,我觉得这是非常重要的。你的用户能到你的网站来看一看是了不得的事情,他再去参与你的社区,能够发贴,这更是了不得的事情。如果说他能够提供一些更加独到的资讯、信息,我觉得这个用户是一个值得你尊敬的用户。

【祝志军】总的来讲做交互这一块,方法上我讲的比较少,你有一个好的理念性的东西,至于你具体做每个事情,你的心态要比较好。曾经有一个网友在我们社区发一些广告贴,我删掉了,为了这个广告贴我可能在那里为此和他来回讨论两个小时,当时有朋友在我办公室,他说“瞧你这个熊样儿”。这就是我刚才说的他能到你这里来贴广告贴证明你的社区有价值,当然说信息不好你要处理你有自己的权限,但是还是要尊重你的客户。刚才是举了一个事例,包括Blog用户,他觉得页面设计不好,我会专门找我们的设计人员帮他设计一下。

【主持人】 先是尊重他,对他的各种选择尽量去满足,这样一次一次拉住他、黏住他。

【祝志军】 他来不来无所谓了,他来过了,他上过了,他发过贴子或者是用过Blog的话,我们的服务也对得起他。

手机里暗含的秘密 让我大吃一惊(转帖)

转自(http://bbs.51.com/user/bbs/265/200607/1100,1.html

在51论坛上看的,我觉得不可全信,不过也不可不信,以下注意自己证实一下有些内容。

转帖正文:

***************************************************************************************************************************

首先声明:这是我的一个朋友发给我的,我觉得现在有很多人可能都有以下列举的习惯,包括我在内(说的这五条我是全都有),最让我感到气愤的是第 4条,如果我的朋友不告诉我,我可能就一直被蒙在鼓里,多花冤枉钱。所以我很希望看到此帖的人一定要注意对比自己是否也有这样的习惯,并且尽可能的告诉自己的朋友,少让人上当。

  

  1、手机电池不要等到没电才充电。

  一般我们都会有一种想法就是手机的电池电力要全部放完再充电比较好基本上是没错的,因为我们在以前使用的充电电池大部分是镍氢( NiH )电池,而镍氢电池有所谓的记忆效应若不放完电再充的话会导致电池寿命急速减少。因此我们才会用到最后 一滴电才开始充电。但现在的手机及一般IA产品大部分都用锂(Li)电池,而锂电池的话就没有记忆效应的问题。若大家还是等到全部用完电后再充的话反而会使得 锂电池内部的化学物质无法反应而寿命减少。最好的方法就是没事就充电让它随时随地保持最佳 满格状态,这样你的电池就可用的又长又久喔。这是从厂商那得到的 讯息 ,并经过本身测试而得。

  

  2、 当手机正在充电时,请勿接电话!!

  原因是手机在充电时,来电接听的话会有潜在的危险。印度有一个31岁在保险公司任职业务经理的年轻人,十几天前在手机还接着充电器的时候接听电话,过了几秒大量的电流经过手机,这个年轻人被摔落到地面,家人发现时,手指烧伤,心跳微弱,并且已经失去意识。经紧急送到医院后,医生宣布到院死亡。行动电话是目前大家最常使用的现代发明。然而,我们也必须要警觉到仪器致死的危险。

  

  3、手机剩一格时不要使用

  收讯满格与只剩一格时相比,发射强度竟然相差1000倍以上.所以……常讲手机的人……要 注意哦 ……^0^、昨天从一位交大教授那儿获得一项很重要的 讯息,那就是当你发现手机的 收讯强度只剩下一格的时候,宁可挂断不谈或者是改用公用电话。千万不要再滔滔不绝、口沫横飞、浓情蜜意、欲罢不能、没完没了……为什么呢? 大家都知道手机的电磁波一直是让人担心的问题。而手机的设计为了在 收讯较差 的地区仍能保有相当的通话质量, 会加强手 机的电磁波发射强度. 当收讯满格 与只剩一格时相比,发射强度竟然相差1000倍以上。

  

  4.17951+电话号码=陷阱

  我也向 1860查询过了. 如果你把17951+电话号码储存在电话号码本里?而不是单独拨?收费就会从0.7元每分钟变成1.3元每分钟.他们的解释是如果储存在电话号码本里?系统将无法识别。所以获得资费优惠,必须每次在键盘上直接按17xxx。神州 行用户如此? 动感地带用户, 全球通也一样。如果你是一个中国移动用户,当你知道中国移动为你设置以下的陷阱的时候,便不再惊讶于你的话费为何会像长了翅膀一样的飞走。用17951+电话号码可以优惠,但如果你预先将"17951+电话号码"存在手机的电话本,使用的时候调出来然后拔打出去,这时中国移动不承认你使用了17951这种优惠的拔打方式,而按照直接拔打的方式计费。如果你是在漫游,两种计费方式可以相差7倍之多!当我得知如此计费之后,我真的不知如何表达我的愤怒,后来打1860咨询时,如果不是主动冶询问这个问题,工号为6608的小姐根本就不告诉我这样的计费。

  

  5、手机费的寄生虫

  手机莫名其妙定置了无用短信,强烈建议大家都看一下自己有没有中招,最简单方法退订每月偷你手机费的寄生虫!中国移动在3.15被迫退出一项新业务,如果您是中国移动的手机用户,键入数字"0000",发送短信至186201,数秒钟内将自动回复一条短信列表,显示您的手机上究竟订制了哪些短信服务,究竟是哪些短信 服务商明着、暗着每月扣除您的手机费;键入数字"00000",发送短信至186201,即可退 订所有 短信服务 。

  

  下面一条是 来自淘友 justjay 的补充,感谢这位朋友的及时补充,希望有更多的朋友如果知道其他有关手机里暗含的秘密,请不要吝啬,让这些黑幕都公之 于众吧 ,我先替大家谢谢您了!

  补充一点~

  我们打电话的时候常常会为了正好赶在1:00前结束而庆幸,但其实并不是这样的,据一位中国移动的工作人员说,其实在你通话到0:55的时候就已经算一分钟了,所以0:55~1:00的通话时间其实是算你2分钟的钱~

  真是黑啊 ~~

************************************************************************************

转帖处转帖者的补充:

第四条对有IP功能手机没用

呵呵 我以前也是17951+号码在电话本里

是真的要多用钱

对手机打手机没用

                                        --转帖完

简述怎样用argouml把学习日记的源代码反向生成类图

这里以学习日记的learndiaryV0.9.0.4为例,结合最新版的ArgoUML0.22简述一下怎么样从学习日记源代码反向生成类图。其它环境为:操作系统:redhat linux9.0,jdk1.4.2_12-b03(最新的jdk6在ArgoUML0.22下工作起来据我使用好像有点问题)。

1、选择档案->汇入原始码:

2、在出现的“汇入原始码...”浏览对话框中选定源代码顶层目录:./learndiary/src/com:

3、在出现的“setup the import classpath”对话框中手工逐个把学习日记涉及到的类库加进去:



我加了的类库有:

1)Tomcat5.0中common目录下的:common/lib/servlet-api.jar

2)学习日记源码涉及到的类库,都在 ./learndiary/web/WEB-INF/lib下面,包括(保险起见,都加吧:)):

activation.jar          commons-logging.jar    jstl.jar                             standard.jar

antlr.jar               commons-validator.jar  log4j-1.2.12.jar                     struts-el.jar

commons-beanutils.jar   CVS                    mail.jar                             struts.jar

commons-digester.jar    jakarta-oro.jar        mysql-connector-java-3.1.12-bin.jar

commons-fileupload.jar  jdom.jar               rome-0.8.jar

(注:这是现在cvs库中的最新版,里面有些类库是learndiaryV0.9.0.4没有的,你如果用learndiaryV0.9.0.4的话就可以不加。)

这个过程有点麻烦,也是argouml需要改进的地方,还有,加了第一个路径后,你会发现对话框跑到主界面后面去了,你加下一个的时候需要在任务栏上的相应图标上点一下才能使它成为当前对话框继续添加classpath。

4、把classpath添加完后,点击OK,你就可以把源代码反向成类图了,这个过程可能要花几分钟,可要耐心点哟:)

这样,完成反向工程了。但是,因为argouml现在还在开发中,还没有达到一个成熟的V1.0版,据我的经验,反向的类图如果再正向生成代码是通不过编译的,比如,在类com.learndiary.website.util.Util.java中

反向后的类文件头部为:


package com.learndiary.website.util;

import byte[];

import String[];

而真正的原始文件头部为:


package com.learndiary.website.util;

import java.security.MessageDigest;

import java.util.Random;

这显然是不对的。但是,其它的绝大多数类是正确的。所以我认为,ArgoUML现在作为一个uml基础知识的学习工具和一些不需要双向生成类图和类的简单应用中可用。也就是说,我认为ArgoUML还不是一个可用的生产版本!

下面征对一个朋友的提问“servlet和struts的包是如何导入到ArgoUML中”来说一下怎样单独把这些类库反向工程成类图。

1、同上面的第1步同;

2、在同样的“汇入原始码...”浏览对话框中的“select language for import”中选择“java from classes” :

3、在出现的“汇入原始码...”浏览对话框中选定你要反向工程的类库,比如下面的struts.jar:

4、在出现的“setup the import classpath”对话框中手工逐个把编译这个类库涉及到的其它类库加进去,因为我不清楚struts.jar都需要依赖什么其它类库,所以把Struts的lib目录下的所有jar文件都加进去了,外加Tomcat5.0下面的那个:common/lib/servlet-api.jar(我也不知道是不是该用J2EE中的servlet相关的那个类库?或者用这个就行了?)

因为,我对UML的应用仅限于非常基础的类分析和活动分析,用于在后来加入的部分模块的设计中理清思路。我觉得对我来说ArgoUML已经够用了。而且,我的使用过程中也有一些肯定不正规的甚至错误的UML应用,还希望看到的朋友能够指点一二。我的电子邮件为:mdx-xx@tom.com,你最好是在网上给我留言。谢谢。

redhat linux9.0下面的eclispe3.1中的.cvsignore怎么不起作用了?

在学习日记源代码中:/learndiary/old/web/WEB-INF/ 目录下边有一个目录名叫classes,是程序运行时的class文件,本来不应该进入cvs仓库的。我也在WEB-INF的目录下面加了一个.cvsignore文件,里面过滤了classes目录的提交(即.cvsignore文件里面加了一行为“classes”)。这个.cvsignore在原来在eclipse2.1下一直工作得很好,本地与cvs库同步时也不会把这个classes的目录包括进去。

但是,当我在redhat linux9.0 下使用eclipse3.1时,问题出现了,在进行cvs同步时把classes目录下的所有文件都包括进去了。我也不知道是eclipse3.1和原因还是redhat linux9.0的原因。现在只有把问题摆在这里,然后就是手工取消这个classes目录的同步。

有哪位朋友知道答案的话希望能回复一下。谢谢。