2007年1月31日星期三

YUM 安装 PHP

[root@devtest1 init.d]# yum -y install php
Setting up Install Process
Setting up repositories
update                    100% |=========================|  951 B    00:00    
base                      100% |=========================| 1.1 kB    00:00    
addons                    100% |=========================|  951 B    00:00    
extras                    100% |=========================| 1.1 kB    00:00    
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for php to pack into transaction set.
php-4.3.9-3.22.i386.rpm   100% |=========================|  23 kB    00:00    
---> Package php.i386 0:4.3.9-3.22 set to be updated
--> Running transaction check
--> Processing Dependency: php-pear for package: php
--> Processing Dependency: httpd-mmn = 20020903 for package: php
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for httpd to pack into transaction set.
httpd-2.0.52-28.ent.cento 100% |=========================|  62 kB    00:01    
---> Package httpd.i386 0:2.0.52-28.ent.centos4 set to be updated
---> Downloading header for php-pear to pack into transaction set.
php-pear-4.3.9-3.22.i386. 100% |=========================|  33 kB    00:01    
---> Package php-pear.i386 0:4.3.9-3.22 set to be updated
--> Running transaction check
--> Processing Dependency: libaprutil-0.so.0 for package: httpd
--> Processing Dependency: apr >= 0.9.4-24.2 for package: httpd
--> Processing Dependency: libapr-0.so.0 for package: httpd
--> Processing Dependency: httpd-suexec for package: httpd
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for apr to pack into transaction set.
apr-0.9.4-24.5.c4.2.i386. 100% |=========================| 7.7 kB    00:00    
---> Package apr.i386 0:0.9.4-24.5.c4.2 set to be updated
---> Downloading header for apr-util to pack into transaction set.
apr-util-0.9.4-21.i386.rp 100% |=========================| 5.2 kB    00:00    
---> Package apr-util.i386 0:0.9.4-21 set to be updated
---> Downloading header for httpd-suexec to pack into transaction set.
httpd-suexec-2.0.52-28.en 100% |=========================|  22 kB    00:01    
---> Package httpd-suexec.i386 0:2.0.52-28.ent.centos4 set to be updated
--> Running transaction check
 
Dependencies Resolved
 
=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 php                     i386       4.3.9-3.22       update            1.3 M
Installing for dependencies:
 apr                     i386       0.9.4-24.5.c4.2  base               88 k
 apr-util                i386       0.9.4-21         base               51 k
 httpd                   i386       2.0.52-28.ent.centos4  base              888 k
 httpd-suexec            i386       2.0.52-28.ent.centos4  base               28 k
 php-pear                i386       4.3.9-3.22       update            267 k
 
Transaction Summary
=============================================================================
Install      6 Package(s)        
Update       0 Package(s)        
Remove       0 Package(s)        
Total download size: 2.6 M
Downloading Packages:
(1/6): apr-0.9.4-24.5.c4. 100% |=========================|  88 kB    00:01    
(2/6): apr-util-0.9.4-21. 100% |=========================|  51 kB    00:01    
(3/6): httpd-2.0.52-28.en 100% |=========================| 888 kB    00:12    
(4/6): php-pear-4.3.9-3.2 100% |=========================| 267 kB    00:04    
(5/6): php-4.3.9-3.22.i38 100% |=========================| 1.3 MB    00:20    
(6/6): httpd-suexec-2.0.5 100% |=========================|  28 kB    00:00    
warning: rpmts_HdrFromFdno: V3 DSA signature: NOKEY, key ID 443e1821
Public key for apr-0.9.4-24.5.c4.2.i386.rpm is not installed
Retrieving GPG key from http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
Importing GPG key 0x443E1821 "CentOS-4 key <centos-4key@centos.org>"
Key imported successfully
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: apr                          ######################### [1/6]
  Installing: apr-util                     ######################### [2/6]
  Installing: httpd                        ######################### [3/6]
  Installing: httpd-suexec                 ######################### [4/6]
  Installing: php                          ######################### [5/6]
  Installing: php-pear                     ######################### [6/6]
 
Installed: php.i386 0:4.3.9-3.22
Dependency Installed: apr.i386 0:0.9.4-24.5.c4.2 apr-util.i386 0:0.9.4-21 httpd.i386 0:2.0.52-28.ent.centos4 httpd-suexec.i386 0:2.0.52-28.ent.centos4 php-pear.i386 0:4.3.9-3.22
Complete!
[root@devtest1 init.d]# php -v
PHP 4.3.9 (cgi) (built: Nov  7 2006 05:00:50)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
 

     KsharP
2007-01-31
      KsharP
QQ:284841013
MSN:ksharp1229@hotmail.com
Email:zhuheng1229@gmail.com
Homepage:http://ksharp.anyp.cn
 
 

ant的安装使用

ant的安装使用
[root@devtest1 src]# wget http://apache.justdn.org/ant/binaries/apache-ant-1.7.0-bin.tar.gz
[root@devtest1 src]# tar zxf apache-ant-1.7.0-bin.tar.gz
[root@devtest1 src]# cd apache-ant-1.7.0
[root@devtest1 apache-ant-1.7.0]# vi /etc/profile
把ant的bin加入PATH,lib加入CLASSPATH,export ANT_HOME
export JAVA_HOME=/usr/java/jdk1.5.0_10/
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:/usr/local/pgsql/bin:/usr/local/mysql/bin:/usr/local/src/apache-ant-1.7.0/bin:
export CLASSPATH=.:/usr/java/jdk1.5.0_10/lib:/usr/java/jdk1.5.0_10/jre/lib:/usr/local/src/apache-ant-1.7.0/lib:$CLASSPATH
CVSROOT=:pserver:admin@localhost:2401/var/cvsroot
export CVSROOT
export ANT_HOME=/usr/local/src/apache-ant-1.7.0
 
[root@devtest1 base]# source /etc/profile
 
[root@devtest1 base]# ant update
Buildfile: build.xml
 
initalize:
    [mkdir] Created dir: /opt/tomcat5/verican/base/build/classes/META-INF
    [mkdir] Created dir: /opt/tomcat5/verican/base/build/test-classes
    [mkdir] Created dir: /opt/tomcat5/verican/base/build/test-classes/META-INF
    [mkdir] Created dir: /opt/tomcat5/verican/base/docs/api
 
clean:
 
compile_src:
    [javac] Compiling 62 source files to /opt/tomcat5/verican/base/build/classes
    [javac] Note: /opt/tomcat5/verican/base/src/com/verican/base/tag/URLTag.java uses unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.
     [copy] Copying 2 files to /opt/tomcat5/verican/base/build/classes
 
package:
      [jar] Building jar: /opt/tomcat5/verican/base/build/verican_base.jar
 
update_base_tolib:
     [copy] Copying 1 file to /opt/tomcat5/verican/libraries
 
update:
 
BUILD SUCCESSFUL
Total time: 12 seconds
看,ant可以工作了。
 

朱恒
2007-01-31

2007年1月29日星期一

Webmin install on Linux

Webmin install on Linux
Last login: Mon Jan 29 17:19:34 2007 from 192.168.30.103
[root@devtest1 ~]# cd /usr/local/src/
[root@devtest1 src]# ls
webmin-1.320-1.noarch.rpm
[root@devtest1 src]# rpm -ivh webmin-1.320-1.noarch.rpm
warning: webmin-1.320-1.noarch.rpm: V3 DSA signature: NOKEY, key ID 11f63c51
Preparing...                ########################################### [100%]
Operating system is CentOS Linux
   1:webmin                 ########################################### [100%]
Webmin install complete. You can now login to http://devtest1:10000/
as root with your root password.
[root@devtest1 src]#
 

朱恒
2007-01-30

Linux 文件和目录权限

一、文件和目录权限概述

linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。

通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问;允许一个预先指定的用户组中的用户访问;允许系统中的任何用户访问。同时,用户能够控制一个给定的文件或目录的访问程度。一个文件活目录可能有读、写及执行权限。当创建一个文件时,系统会自动地赋予文件所有者读和写的权限,这样可以允许所有者能够显示文件内容和修改文件。文件所有者可以将这些权限改变为任何他想指定的权限。一个文件也许只有读权限,禁止任何修改。文件也可能只有执行权限,允许它想一个程序一样执行。

三种不同的用户类型能够访问一个目录或者文件:所有着、用户组或其他用户。所有者就是创建文件的用户,用户是所有用户所创建的文件的所有者,用户可以允许所在的用户组能访问用户的文件。通常,用户都组合成用户组,例如,某一类或某一项目中的所有用户都能够被系统管理员归为一个用户组,一个用户能够授予所在用户组的其他成员的文件访问权限。最后,用户也将自己的文件向系统内的所有用户开放,在这种情况下,系统内的所有用户都能够访问用户的目录或文件。在这种意义上,系统内的其他所有用户就是other用户类。

每一个用户都有它自身的读、写和执行权限。第一套权限控制访问自己的文件权限,即所有者权限。第二套权限控制用户组访问其中一个用户的文件的权限。第三套权限控制其他所有用户访问一个用户的文件的权限,这三套权限赋予用户不同类型(即所有者、用户组和其他用户)的读、写及执行权限就构成了一个有9种类型的权限组。

我们可以用-l参数的ls命令显示文件的详细信息,其中包括权限。如下所示:

[root@localhost ~]# ls -lh
总用量
368K
-rw-r--r-- 1 root root 12K 8
15 23:18 conkyrc.sample
drwxr-xr-x 2 root root 48 9
4 16:32 Desktop
-r--r--r-- 1 root root 325K 10
22 21:08 libfreetype.so.6
drwxr-xr-x 2 root root 48 8
12 22:25 MyMusic
-rwxr-xr-x 1 root root 9.6K 11
5 08:08 net.eth0
-rwxr-xr-x 1 root root 9.6K 11
5 08:08 net.eth1
-rwxr-xr-x 1 root root 512 11
5 08:08 net.lo
drwxr-xr-x 2 root root 48 9
6 13:06 vmware

当执行ls -l ls -al 命令后显示的结果中,最前面的第210个字符是用来表示权限。第一个字符一般用来区分文件和目录:

    d:表示是一个目录,事实上在ext2fs中,目录是一个特殊的文件。
    
-:表示这是一个普通的文件。
    l:
表示这是一个符号链接文件,实际上它指向另一个文件。
    b
c:分别表示区块设备和其他的外围设备,是特殊类型的文件。
    s
p:这些文件关系到系统的数据结构和管道,通常很少见到。


下面详细介绍一下权限的种类和设置权限的方法。

二、一般权限
210个字符当中的每3个为一组,左边三个字符表示所有者权限,中间3个字符表示与所有者同一组的用户的权限,右边3个字符是其他用户的权限。这三个一组共9个字符,代表的意义如下:
r(Read
,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目 录的权限。
w(Write,
写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
x(eXecute
,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。
-:表示不具有该项权限。

下面举例说明:

      -rwx------: 文件所有者对文件具有读取、写入和执行的权限。
      -rwxr―r--:
文件所有者具有读、写与执行的权限,其他用户则具有读取的权限。
      -rw-rw-r-x:
文件所有者与同组用户对文件具有读写的权限,而其他用户仅具有读取和执行的权限。
      drwx--x--x:
目录所有者具有读写与进入目录的权限,其他用户近能进入该目录,却无法读取任何数据。
      Drwx------:
除了目录所有者具有完整的权限之外,其他用户对该目录完全没有任何权限。

每个用户都拥有自己的专属目录,通常集中放置在/home目录下,这些专属目录的默认权限为rwx------:

[root@localhost ~]# ls -al
总用量
5
drwxr-xr-x 9 root root 240 11
8 18:30 .
drwxr-xr-t 22 root root 568 10
15 09:13 ..
drwxr-xr-x 2 root root 48 8
11 08:09 ftp
drwxrwxrwx 2 habil users 272 11
13 19:13 habil
-rw-r--r-- 1 root root 0 7
31 00:41 .keep
drwxr-xr-x 2 root root 72 11
3 19:34 mp3
drwxr-xr-x 39 sailor users 1896 11
11 13:35 sailor
drwxr-xr-x 3 temp users 168 11
8 18:17 temp
drwxr-xr-x 3 test users 200 11
8 22:40 test
drwxr-xr-x 65 wxd users 2952 11
19 18:53 wxd

表示目录所有者本身具有所有权限,其他用户无法进入该目录。执行mkdir命令所创建的目录,其默认权限为rwxr-xr-x,用户可以根据需要修改目录的权限。

此外,默认的权限可用umask命令修改,用法非常简单,只需执行umask 777 命令,便代表屏蔽所有的权限,因而之后建立的文件或目录,其权限都变成000,依次类推。通常root帐号搭配umask命令的数值为022027077,普通用户则是采用002,这样所产生的权限依次为755750700775。有关权限的数字表示法,后面将会详细说明。
用户登录系统时,用户环境就会自动执行rmask命令来决定文件、目录的默认权限。


三、特殊权限
其实文件与目录设置不止这些,还有所谓的特殊权限。由于特殊权限会拥有一些"特权",因而用户若无特殊需求,不应该启用这些权限,避免安全方面出现严重漏洞,造成黑客入侵,甚至摧毁系统!!!
s
SSUID,Set UID):可执行的文件搭配这个权限,便能得到特权,任意存取该文件的所有者能使用的全部系统资源。请注意具备SUID权限的文件,黑客经常利用这种权限,以SUID配上root帐号拥有者,无声无息地在系统中开扇后门,供日后进出使用。

s
SSGIDSet GID):设置在文件上面,其效果与SUID相同,只不过将文件所有者换成用户组,该文件就可以任意存取整个用户组所能使用的系统资源。
T
TSticky):/tmp /var/tmp目录供所有用户暂时存取文件,亦即每位用户皆拥有完整的权限进入该目录,去浏览、删除和移动文件。

因为SUIDSGIDSticky占用x的位置来表示,所以在表示上会有大小写之分。加入同时开启执行权限和SUIDSGIDSticky,则权限表示字符是小写的:

     -rwsr-sr-t 1 root root 4096 6 23 0817 conf


如果关闭执行权限,则表示字符会变成大写:

     -rwSr-Sr-T 1 root root 4096 6 23 0817 conf


四、使用文件管理器来改变文件或目录的权限:

五、使用chmod和数字改变文件或目录的访问权限

文件和目录的权限表示,是用rwx这三个字符来代表所有者、用户组和其他用户的权限。有时候,字符似乎过于麻烦,因此还有另外一种方法是以数字来表示权限,而且仅需三个数字。

     r: 对应数值4
     w:
对应数值
2
     x
:对应数值
1
     
-:对应数值0


  数字设定的关键是mode的取值,一开始许多初学者会被搞糊涂,其实很简单,我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r- -则可以表示成为:

  111 101 100
  再将其每三位转换成为一个十进制数,就是754

  例如,我们想让a.txt这个文件的权限为:
   自己 同组用户 其他用户
  可读
  可写
    
可执行


  那么,我们先根据上表得到权限串为:rw-rw-r--,那么转换成二进制数就是110 110 100,再每三位转换成为一个十进制数,就得到664,因此我 们执行命令:

[root@localhost ~]# chmod 664 a.txt


按照上面的规则,rwx合起来就是4+2+17,一个rwxrwxrwx权限全开放的文件,数值表示为777;而完全不开放权限的文件"---------"其数字表示为000。下面举几个例子:

-rwx------:等于数字表示700
-rwxr―r--:
等于数字表示744
-rw-rw-r-x:
等于数字表示665
drwx―x―x:
等于数字表示711
drwx------:
等于数字表示700


在文本模式下,可执行chmod命令去改变文件和目录的权限。我们先执行ls -l 看看目录内的情况:

[root@localhost ~]# ls -l
总用量
368
-rw-r--r-- 1 root root 12172 8
15 23:18 conkyrc.sample
drwxr-xr-x 2 root root 48 9
4 16:32 Desktop
-r--r--r-- 1 root root 331844 10
22 21:08 libfreetype.so.6
drwxr-xr-x 2 root root 48 8
12 22:25 MyMusic
-rwxr-xr-x 1 root root 9776 11
5 08:08 net.eth0
-rwxr-xr-x 1 root root 9776 11
5 08:08 net.eth1
-rwxr-xr-x 1 root root 512 11
5 08:08 net.lo
drwxr-xr-x 2 root root 48 9
6 13:06 vmware

可以看到当然文件conkyrc.sample文件的权限是644,然后把这个文件的权限改成777。执行下面命令

[root@localhost ~]# chmod 777 conkyrc.sample


然后ls -l看一下执行后的结果:

[root@localhost ~]# ls -l
总用量
368
-rwxrwxrwx 1 root root 12172 8
15 23:18 conkyrc.sample
drwxr-xr-x 2 root root 48 9
4 16:32 Desktop
-r--r--r-- 1 root root 331844 10
22 21:08 libfreetype.so.6
drwxr-xr-x 2 root root 48 8
12 22:25 MyMusic
-rwxr-xr-x 1 root root 9776 11
5 08:08 net.eth0
-rwxr-xr-x 1 root root 9776 11
5 08:08 net.eth1
-rwxr-xr-x 1 root root 512 11
5 08:08 net.lo
drwxr-xr-x 2 root root 48 9
6 13:06 vmware

可以看到conkyrc.sample文件的权限已经修改为rwxrwxrwx

如果要加上特殊权限,就必须使用4位数字才能表示。特殊权限的对应数值为:

     s S SUID):对应数值4
     s
S SGID):对应数值2
     t
T :对应数值1
<code>

用同样的方法修改文件权限就可以了
例如:
<code>
[root@localhost ~]# chmod 7600 conkyrc.sample
[root@localhost ~]# ls -l
总用量 368
-rwS--S--T 1 root root 12172 8
15 23:18 conkyrc.sample
drwxr-xr-x 2 root root 48 9
4 16:32 Desktop
-r--r--r-- 1 root root 331844 10
22 21:08 libfreetype.so.6
drwxr-xr-x 2 root root 48 8
12 22:25 MyMusic
-rwxr-xr-x 1 root root 9776 11
5 08:08 net.eth0
-rwxr-xr-x 1 root root 9776 11
5 08:08 net.eth1
-rwxr-xr-x 1 root root 512 11
5 08:08 net.lo
drwxr-xr-x 2 root root 48 9
6 13:06 vmware

加入想一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,要使用参数-R表示启动递归处理。

例如:

[root@localhost ~]# chmod 777 /home/user 注:仅把/home/user目录的权限设置为rwxrwxrwx
[root@localhost ~]# chmod -R 777 /home/user
注:表示将整个/home/user目录与其中的文件和子目录的权限都设置为rwxrwxrwx

六、使用命令chown改变目录或文件的所有权
文件与目录不仅可以改变权限,其所有权及所属用户组也能修改,和设置权限类似,用户可以通过图形界面来设置,或执行chown命令来修改。

我们先执行ls -l看看目录情况:

[root@localhost ~]# ls -l
总用量
368
-rwxrwxrwx 1 root root 12172 8
15 23:18 conkyrc.sample
drwxr-xr-x 2 root root 48 9
4 16:32 Desktop
-r--r--r-- 1 root root 331844 10
22 21:08 libfreetype.so.6
drwxr-xr-x 2 root root 48 8
12 22:25 MyMusic
-rwxr-xr-x 1 root root 9776 11
5 08:08 net.eth0
-rwxr-xr-x 1 root root 9776 11
5 08:08 net.eth1
-rwxr-xr-x 1 root root 512 11
5 08:08 net.lo
drwxr-xr-x 2 root root 48 9
6 13:06 vmware

可以看到conkyrc.sample文件的所属用户组为root,所有者为root

执行下面命令,把conkyrc.sample文件的所有权转移到用户user:

[root@localhost ~]# chown user conkyrc.sample
[root@localhost ~]# ls -l
总用量
368
-rwxrwxrwx 1 user root 12172 8
15 23:18 conkyrc.sample
drwxr-xr-x 2 root root 48 9
4 16:32 Desktop
-r--r--r-- 1 root root 331844 10
22 21:08 libfreetype.so.6
drwxr-xr-x 2 root root 48 8
12 22:25 MyMusic
-rwxr-xr-x 1 root root 9776 11
5 08:08 net.eth0
-rwxr-xr-x 1 root root 9776 11
5 08:08 net.eth1
-rwxr-xr-x 1 root root 512 11
5 08:08 net.lo
drwxr-xr-x 2 root root 48 9
6 13:06 vmware

要改变所属组,可使用下面命令:

[root@localhost ~]# chown :users conkyrc.sample
[root@localhost ~]# ls -l
总用量
368
-rwxrwxrwx 1 user users 12172 8
15 23:18 conkyrc.sample
drwxr-xr-x 2 root root 48 9
4 16:32 Desktop
-r--r--r-- 1 root root 331844 10
22 21:08 libfreetype.so.6
drwxr-xr-x 2 root root 48 8
12 22:25 MyMusic
-rwxr-xr-x 1 root root 9776 11
5 08:08 net.eth0
-rwxr-xr-x 1 root root 9776 11
5 08:08 net.eth1
-rwxr-xr-x 1 root root 512 11
5 08:08 net.lo
drwxr-xr-x 2 root root 48 9
6 13:06 vmware

要修改目录的权限,使用-R参数就可以了,方法和前面一样。

 

 

朱恒
2007-01-30

远程登录CVS

#cvs -d :pserver:hzhu@192.168.252.83:2401/var/cvsroot login
enter your password
#cvs login
enter your password again
now you can use the CVS commands with pleasure like "cvs up -d -P"
 
Following is a simple example of mine
[root@devtest1 ~]# cvs -d :pserver:hzhu@192.168.252.83:2401/var/cvsroot login 
Logging in to :pserver:hzhu@192.168.252.83:2401/var/cvsroot
CVS password:
[root@devtest1 resources]# cvs up -dP
cvs update: authorization failed: server 192.168.252.83 rejected access to /var/cvsroot for user tester
cvs update: used empty password; try "cvs login" with a real password
[root@devtest1 resources]# cvs login
Logging in to :pserver:tester@192.168.252.83:2401/var/cvsroot
CVS password:
[root@devtest1 resources]# cvs up -dP
cvs server: Updating .
cvs server: Updating buildscript
cvs server: Updating catalog
cvs server: Updating catalog/css
U catalog/css/calaveras.xml
RCS file: /var/cvsroot/verican/resources/catalog/css/cssdemo.xml,v
retrieving revision 1.2
retrieving revision 1.4
Merging differences between 1.2 and 1.4 into cssdemo.xml
rcsmerge: warning: conflicts during merge
cvs server: conflicts found in catalog/css/cssdemo.xml
C catalog/css/cssdemo.xml
U catalog/css/jacksonville.xml
[root@devtest1 resources]#

朱恒
2007-01-30

让apache,postgresql ,tomcat随机自启动




Linux [my OS is CentOS 4.2] 下 让apache,postgresql 随机自启动



在etc/rc.d/rc.local文件中加入如下
#apache2 auto start
/usr/local/apache2/bin/httpd -k start
#postgresql auto start
su - postgres -c "/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data -S -i"
#tomcat5 auto start
su - tomcat -c /opt/tomcat5/bin/startup.sh


#notice:
#你可能需要执行chmod -R 777 /opt/tomcat5/logs/赋与tomcat用户在logs下的读写权限。










PostgerSQL Installation



Purpose:
This is a installation document how to installation the postgreSQL on linux server.
Procedure:
1. Save the installation file under /usr/local/src
2. unzip the installation file
#tar zxpvf postgresql-8.1.3.tar.gz
3. # cd postgresql-8.1.3
./configure
gmake
su
gmake install
adduser postgres
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su - postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &
/usr/local/pgsql/bin/createdb test
/usr/local/pgsql/bin/psql test
需要修改postgresql.conf和pg_hba.conf文件.


参见postgresql8.1 版本中文手册 http://www.pgsqldb.org/pgsqldoc-8.1c/index.html


FTP setup on Redhat Linux



FTP setup on Redhat Linux

FTP is a common file transfer protocol in the internet, and a lot of users use FTP to exchange files. The followings are the instructions to setup FTP server on Redhat linux.
1. Install vsftd on the server. This is software will be installed by default during OS installation.
2. Modify "/etc/vsftpd/vsftpd.conf" to change something:
anonymous_enable=NO // anonymouse should be disabled
chroot_local_user=YES //chroot to user home directory
chroot_list_enable=NO //restrict user to special directory
pasv_enable=YES pasv_min_port=65400 pasv_max_port=65490 // make pasv available for connection. This is default mode for most ftp client tools. If you open this option, please modify firewall to make it effective.
pam_service_name=vsftpd
serlist_enable=YES
#enable for standalone mode
listen=YES
pasv_promiscuous=YES
pasv_enable=YES
pasv_min_port=65400
pasv_max_port=65490
3. Create ftp user, the default group is ftp.
#useradd -g ftp -s /sbin/nologin -M -d /home/ftp/username -p password username
#mkdir /home/ftp/username
#chown -R username.ftp /home/ftp/username
If you want to change the ftp user password, please use following command:
#passwd username
Explain: "-M" indicates not to create home directory for user. "-s" indicates shell for user. Here we use "/sbin/nologin" to indicate ftp user should be permitted to login system for security problem.
4. Start the vsftpd and do some test.
#service vsftpd start


朱恒
2007-01-29








Google Blogger




Blogger是Google提供的免费博客服务,提供中文界面,是一个很成熟的中文博客发布平台。
  Blogger一个突出的特点就是简洁但功能强大,没有多余而花哨的功能,必要的功能一个都不差。Bloger自由性最大的地方在于其模板可以自定义,也就是说你可以修改模板里的任何内容,包括Google的广告,这给那些懂Html和CSS的Blogger提供了很大的自由度。Blogger默认把用户的网志发布到免费提供的 Blogspot.com主机上。可惜的是Blogspot.com从中国是无法访问。好在Blogger.com提供了一种很独特的服务,可以将博客的静态页面通过FTP发布到用户选择的服务器上。
  通过FTP发布到其他主机
  用户在Blogger.com上的默认Blog地址显然无法从国内访问,但是如果你有一个虚拟主机空间,或者其他支持FTP的空间,那么Blogger.com可以将这个地址上的日志文件全部发布到你的虚拟主机空间上去。
  具体的方法是:登陆你的Blogger帐号,进入控制面板,更改设置,在"发布"选项卡中点击FTP的超级链接,然后录入FTP服务器地址,FTP用户名和密码。点保存设置后,就可以发布了,这时Blogger.com会将你的整个站发布到你指定的主机上。
  至于这个FTP服务器,我推荐一个国内GFans提供的免费Blogger Spaces空间,支持FTP发布,最重要的是支持域名绑定,其服务器在广州,速度很快,希望大家不要滥用其服务。
  通过电子邮件发布日志
  在Blogger中写日志麻烦?告诉你一个技巧,你可以不登录Blogger网站,只要发送一封电子邮件就可以发表文章了。
  具体的方法是:登陆你的Blogger帐号,进入控制面板,更改设置,在"电子邮件"中,在Mail-to-Blogger地址中可以自定义一个邮件地址,发送到此地址的邮件会自动张贴,BlogSend地址是另外一个电子邮件地址,只要一发布文章,系统会将其邮寄文章到此地址。
  这里再介绍一个小技巧,就是在更新Blogger的同时也更新MSN Space。因为MSN Space也是支持邮件发布的,因此将Blogger发布后发送邮件的BlogSend地址修改为MSN Space的发布邮件地址,这样在Blogger上发布一篇文章后,系统就会自动将文章内容发送到Msn Spaces里,这样就同时更新了两个博客。
  有一点值得注意的是,Blogger默认的编码是UTF-8编码,因此发送邮件的时候要将邮件编码设置为UTF-8的格式,建议登陆GMail发送邮件。一来GMail默认就是UTF-8格式的,编码全兼容,二来GMail支持自动保存功能,不怕电脑死机后丢失文章,三来GMail还可以自动备份发出去的文章,以免文章丢失。
  使用第三方软件发布文章
  Zoundry是一个第三方的日志发布软件,可以做到不用登陆Blogger即可发布日志,使用它来编辑和发布,速度和效率都非常理想。
  添加Google Adsense广告
  Google Blogger用户可以很快捷方便地申请加入Google Adsense广告服务。Google本身也推荐博客们使用Blogger的广告来为自己和Google赚钱。
  Google工具栏的应用
  Google工具栏有一个按钮是"发送到Blogger",可以快速将当前网页发送到自己的Blogger空间上。
  Google Picasa的应用
  Picasa是Google的图像管理软件,在Picasa中点图片,再点"Blog This",可以将选定图片发送到自己的Blogger空间上。
  Blogger的申请地址是: http://www.blogger.com/



Integrate Apache2 and Tomcat5




Integrate Apache and Tomcat『apache2.2.3-tomcat5.5.20』


Apache2.2.3和Tomcat5.5.20的整合比以前有很大的飞跃,我们不用再去和mod_jk进行较劲了,不用再写什么 workers.properties这样的配置文件了,我们的手指得到了充分的解放,不过也少了一些配置过程中的乐趣,下面来介绍以下如何对 Apache2.x和Tomcat5.x进行整合
首先去Apache的站点下载Apache2.2.3和Tomcat5.5.20这两个最新版的服务器
Apache可以从官方网站下载到: http://www.apache.org/


Tomcat可以从官方网站下载到 :http://tomcat.apache.org/
你有Java 的SDK吗?没有的话可要先装J2SDK才可以哦,目前最新版本是JDK 5.0 Update 10,


to be continued......


戒指项链




戒指项链
今天午后,无意的一个巧合。我打开电视的连续扫描看了两个频道,都看见片中人带着戒指项链。《三岔口》中 李心洁饰的那个角色和《永不言弃》里面的段臣风。我想起妹妹在我身边带着那枚戒指在胸前,这个时候,我有巨大的幸福感觉。床头放着的相册里面有妹妹的照片,妹妹也都带着戒指和项链。我想,是时候买一个求婚的戒指了。爱你,我最亲爱的妹妹宝贝。



Linux文件查找命令find


Linux文件查找命令find[转]
2007-1-27
由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。
原文地址:http://oss.lzu.edu.cn/blog/blog.php?do_showone/tid_539.html
一、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 { } \;
<> ? 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 { } \;
<> ? n
<> ? n
<> ? n
<> ? 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