Updates from 十二月, 2008

  • BUTTON和INPUT

    shishirui 10:34 on 2008/12/29 | 0 Permalink | Reply

    一句话概括主题:<button>具有<input type="button" ... >相同的作用但是在可操控性方面更加强大。

    HTML 4.01规范的Forms部分指名表单有以下几种控制类型:buttons, checkboxes, radio buttons, menus, text input, file select, hidden controls, object controls. 其中除了buttons/menus/object controls之外,都是由<input>完成。

    我这里说的是<button>和<input>。

    <button>和<input>

    规范中指名:可以用<button>和<input>来做表单按扭。不同的按钮类型请参考这些元素的详细定义。要注意的是<button>比<input>支持更丰富的表现功能。
    一些区别

    大家都知道<input>可以这样用(实际上是一定要这样用):<input type="submit" value="OK" />,一定要这样闭合。而不是:<input type="submit" value="OK" ></input>。因为起始标签为必须,而关闭标签是禁止的。

    <button>比<input>更厉害的地方就在于它可以包含内容。它的值并不是写在value属性里,而是包含在标签中。如:<button>OK</button>。<button>的起始标签和关闭标签都是必须的。这样你便获得了样式化的主导权。

    你可以这样写:<button><strong>OK</strong>, I do.</button>,甚至是插入图片:<button><img src="button.gif" alt="" />, it's great.</button>。有点类似于<input type="image">,但是显然强大多了。

    最后要注意的是,被<button>包含的图片,不能使用热点地图,即不能<img src="foo.gif" usemap="..." />,这是不合法的。当然也不能再包含诸如input, select, textarea, label, button, form, fieldset, iframe,和isindex(不推荐使用)元素了。

     
  • 动画片

    shishirui 12:18 on 2008/12/23 | 0 Permalink | Reply

    http://v.youku.com/v_playlist/f2568239o1p0.html

    http://v.youku.com/v_playlist/f1546412o1p0.html

    http://www.youku.com/playlist_show/id_1546412.html

    http://www.youku.com/playlist_show/id_831859.html

     
  • jquery3篇教程

    shishirui 09:58 on 2008/12/22 | 0 Permalink | Reply

    http://www.ibm.com/developerworks/cn/web/wa-jquery1

    http://www.ibm.com/developerworks/cn/web/wa-jquery2

    http://www.ibm.com/developerworks/cn/web/wa-jquery3

     
  • SmartMarkUP 一个轻量的在线代码编辑器

    shishirui 10:01 on 2008/12/16 | 0 Permalink | Reply

    http://www.phpcow.com/smartmarkup/

     
  • ubuntu config

    shishirui 15:21 on 2008/12/12 | 0 Permalink | Reply

    让UBUNTU在英文下支持中文输入法。
    进入系统后,系统->系统设置->
    语言支持->选择默认语言英文。
    然后
    sudo gedit /etc/X11/Xsession.d/95xinput
    输入内容
    export XMODIFIERS=@im=SCIM
    export GTK_IM_MODULE=scim
    export QT_IM_MODULE=scim
    scim -d

    让UBUNTU下可以支持CHM
    只要安装XCHM就可以了安装很简单
    sudo apt-get install xchm
    安装完成后,把CHM的打开方式设置成/usr/bin/xchm  就可以了。

    3)允许root用户登入GNOME
    启用root后,
    打开“系统→系统管理→登录窗口”,选择“安全”。勾选“允许本地系统管理员登录”

    5)安装RAR 压缩/解压缩程序
    安装
    sudo apt-get install rar
    建立软链接
    sudo ln -fs /usr/bin/rar /usr/bin/unrar
    这样,以后只要在命令行输入unrar,就可以解压或者压缩文件了,安装完成后,归档管理器也同时集成了rar组件

    6)安装多线程下载软件Downloader for X
    sudo apt-get install d4x

    (10) 改变GRUB 菜单引导的系统。
    装了Ubuntu后,系统引导自动到Ubuntu,在等待10秒后就进入Ubuntu。而不少人都是装双系统,且希望自动引导到Windows,那可以这样改变。
    sudo cp /boot/grub/menu.lst /boot/grub/menu.lst_backup
    sudo gedit /boot/grub/menu.lst

    再搜寻这一行文字
    default 0
    用下面这一行取代
    default X_sequence
    保存编辑过的文件。

    注意:X_sequence的意思是你的操作系统条目的项数(从0开始计算,即第一项是“0”,第二项是“1”,“Other operating system"之类的也算。)

    7)在安装Windows后恢复GRUB启动菜单
    经常出现的情况是,我们想重装一下windows系统,但是重装会把启动Linux的菜单冲掉,这是个让人头疼的问题,我们这样来解决它:
    首先按照第一项,用Ubuntu安装盘获得root权限,我们假定 /dev/hda 为 /boot 所在分区,然后在提示符输入:
    grub-install /dev/hda
    这样grub-install程序会为我们安装grub菜单。

    以前ubuntu7.04下一直无法写我的ntfs分区,需要安装ntfs-3g
    1.sudo apt-install ntfs-3g。
    2. 修改/etc/fstab

    /dev/<your partition> /media/<mount point> ntfs-3g defaults,locale=zh_CN.utf8 0 0

    3.重启机器,ok

    详细的方法可以看附带的ntfs-3g文档

    安装SVN
    简单方法
    执行以下命令
    sudo apt-get install subversion
    sudo apt-get install libapache2-svn
    然后在你的命令行在运行svn help 证明安装 成功

    输入“sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf_synbackup”,先把要修改的文件备份下,防止修改不当好恢复
    首先修改xorg.conf文件,找到synaptic这一段,添加两个东西,首先是共享内存控制,一个是初始化触摸板的状态。

    Section "InputDevice"
    Identifier  "Synaptics Touchpad"
    Driver      "synaptics"
    Option      "SendCoreEvents" "true"
    Option      "Device" "/dev/psaux"
    Option      "Protocol" "auto-dev"
    Option      "HorizScrollDelta" "0"

    # 打开共享内存控制
    Option      "SHMConfig" "on"
    # 触摸板初始化为关闭
    Option      "TouchpadOff" "1"
    EndSection

    保存xorg.conf重新启动X
    $sudo /etc/init.d/gdm restart

    现在触摸板禁用了

    有个实用工具synclient通过共享内存来控制触摸板

    # 关闭触摸板
    $synclient touchpadoff=1
    # 打开触摸板
    $synclient touchpadoff=0

    命令太长了在$HOME/.bashrc建立两个alias
    alias synoff='synclient touchpadoff=1'
    alias synon='synclient touchpadoff=0'

    重新更新alias
    . ~/.bashrc
    现在我们可以通过简单的synon和synoff打开和关闭触摸板了.

    Install realpalyer

    method-1:

    sudo apt-get install realplayer

    method-2:

    Get a copy from http://www.real.com/linux/?src=020923home_cn_cn

    then:

    $chmod +x RealPlayer11GOLD.bin
    $sudo ./RealPlayer11GOLD.bin

    Install a new Font

    Copy the font file to /usr/share/fonts/truetype then chmod 777 to that. Refresh your font list.

    Install ssh

    sudo apt-get install ssh

    Install apache2

    sudo apt-get install apache2

    Install mysql

    sudo apt-get install mysql

    Install php5

    sudo apt-get install php5

     
  • find和xargs使用详解

    shishirui 09:16 on 2008/12/04 | 0 Permalink | Reply

    使用find和xargs
    有时可能需要在系统中查找具有某一特征的文件(例如文件权限、文件属主、文件长度、
    文件类型等等)。这样做可能有很多原因。可能出于安全性的考虑,或是一般性的系统管理任
    务,或许只是为了找出一个不知保存在什么地方的文件。F i n d是一个非常有效的工具,它可
    以遍历当前目录甚至于整个文件系统来查找某些文件或目录。
    在本章中,我们介绍以下内容:
    * find命令选项。
    * 使用f i n d命令不同选项的例子。
    * 配合f i n d使用x a rg s命令的例子。
    由于f i n d具有如此强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间
    来了解一下。即使系统中含有网络文件系统( N F S ),f i n d命令在该文件系统中同样有效,只要
    你具有相应的权限。
    在运行一个非常消耗资源的f i n d命令时,很多人都倾向于把它放在后台执行,因为遍历一
    个大的文件系统可能会花费很长的时间(这里是指3 0 G字节以上的文件系统)。
    F i n d命令的一般形式为:
    find pathname -options [-print -exec -ok]
    让我们来看看该命令的参数:
    pathname find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
    -print find命令将匹配的文件输出到标准输出。
    -exec find命令对匹配的文件执行该参数所给出的s h e l l命令。相应命令的形式为' c o m m -
    and' {} \;,注意{ }和\;之间的空格。
    -ok 和- e x e c的作用相同,只不过以一种更为安全的模式来执行该参数所给出的s h e l l命令,
    在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
    find命令选项
    f i n d命令有很多选项或表达式,每一个选项前面跟随一个横杠-。让我们先来看一下该命
    令的主要选项,然后再给出一些例子。
    -name 按照文件名查找文件。
    -perm 按照文件权限来查找文件。
    -prune 使用这一选项可以使f i n d命令不在当前指定的目录中查找,如果同时使用了- d e p t h
    选项,那么- p r u n e选项将被f i n d命令忽略。
    -user 按照文件属主来查找文件。
    -group 按照文件所属的组来查找文件。
    -mtime -n +n 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n
    表示文件更改时间距现在n天以前。F i n d命令还有- a t i m e和- c t i m e选项,但它们都和- m t i m e选项
    相似,所以我们在这里只介绍- m t i m e选项。
    -nogroup 查找无有效所属组的文件,即该文件所属的组在/ e t c / g r o u p s中不存在。
    -nouser 查找无有效属主的文件,即该文件的属主在/ e t c / p a s s w d中不存在。
    -newer file1 ! file2 查找更改时间比文件f i l e 1新但比文件f i l e 2旧的文件。
    -type 查找某一类型的文件,诸如:
    b - 块设备文件。
    d - 目录。
    c - 字符设备文件。
    p - 管道文件。
    l - 符号链接文件。
    f - 普通文件。
    -size n[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
    -depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
    -fstype 查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件
    / e t c / f s t a b中找到,该配置文件中包含了本系统中有关文件系统的信息。
    -mount 在查找文件时不跨越文件系统m o u n t点。
    -follow 如果f i n d命令遇到符号链接文件,就跟踪至链接所指向的文件。
    -cpio 对匹配的文件使用c p i o命令,将这些文件备份到磁带设备中。
    使用name选项
    文件名选项是f i n d命令最常用的选项,要么单独使用该选项,要么和其他选项一起使用。
    可以使用某种文件名模式来匹配文件,记住要用引号将文件名模式引起来。
    不管当前路径是什么,如果想要在自己的根目录$ H O M E中查找文件名符合* . t x t的文件,
    使用~作为' p a t h n a m e参数,波浪号~代表了你的$ H O M E目录。
    $ find ~ -name "*.txt" -print
    想要在当前目录及子目录中查找所有的' * . t x t'文件,可以用:
    $ find . -name "*.txt" -print
    想要的当前目录及子目录中查找文件名以一个大写字母开头的文件,可以用:
    $ find . -name "[A-Z]*" -print
    想要在/ e t c目录中查找文件名以h o s t开头的文件,可以用:
    $ find /etc -name "host*" -print
    想要查找$ H O M E目录中的文件,可以用:
    $ find ~ -name "*" -print 或find . -print
    要想让系统高负荷运行,就从根目录开始查找所有的文件。如果希望在系统管理员那里
    保留一个好印象的话,最好在这么做之前考虑清楚!
    $ find / -name "*" -print
    如果想在当前目录查找文件名以两个小写字母开头,跟着是两个数字,最后是* . t x t的文
    件,下面的命令就能够返回名为a x 3 7 . t x t的文件:

    $ find . -name "[a-z][a-z][0--9][0--9].txt" -print
    使用perm选项
    如果希望按照文件权限模式来查找文件的话,可以采用- p e r m选项。你可能需要找到所有
    用户都具有执行权限的文件,或是希望查看某个用户目录下的文件权限类型。在使用这一选
    项的时候,最好使用八进制的权限表示法。
    为了在当前目录下查找文件权限位为7 5 5的文件,即文件属主可以读、写、执行,其他用
    户可以读、执行的文件,可以用:
    $ find . -perm 755 -print
    如果希望在当前目录下查找所有用户都可读、写、执行的文件(要小心这种情况),我们
    可以使用f i n d命令的- p e r m选项。在八进制数字前面要加一个横杠-。在下面的命令中- p e r m代
    表按照文件权限查找,而' 0 0 7'和你在c h m o d命令的绝对模式中所采用的表示法完全相同。
    $ find . -perm -007 -print
    忽略某个目录
    如果在查找文件时希望忽略某个目录,因为你知道那个目录中没有你所要查找的文件,
    那么可以使用- p r u n e选项来指出需要忽略的目录。在使用- p r u n e选项时要当心,因为如果你同
    时使用了- d e p t h选项,那么- p r u n e选项就会被f i n d命令忽略。
    如果希望在/ a p p s目录下查找文件,但不希望在/ a p p s / b i n目录下查找,可以用:
    $ find /apps -name "/apps/bin" -prune -o -print
    2.1.4 使用user和nouser选项
    如果希望按照文件属主查找文件,可以给出相应的用户名。例如,在$ H O M E目录中查找
    文件属主为d a v e的文件,可以用:
    $ find ~ -user dave -print
    在/ e t c目录下查找文件属主为u u c p的文件:
    $ find /etc -user uucp -print
    为了查找属主帐户已经被删除的文件,可以使用- n o u s e r选项。这样就能够找到那些属主
    在/ e t c / p a s s w d文件中没有有效帐户的文件。在使用- n o u s e r选项时,不必给出用户名; f i n d命令
    能够为你完成相应的工作。例如,希望在/ h o m e目录下查找所有的这类文件,可以用:
    $ find /home -nouser -print
    使用group和nogroup选项
    就像u s e r和n o u s e r选项一样,针对文件所属于的用户组, f i n d命令也具有同样的选项,为
    了在/ a p p s目录下查找属于a c c t s用户组的文件,可以用:
    $ find /apps -group accts -print
    要查找没有有效所属用户组的所有文件,可以使用n o g r o u p选项。下面的f i n d命令从文件
    系统的根目录处查找这样的文件
    $ fine/-nogroup-print
    按照更改时间查找文件
    如果希望按照更改时间来查找文件,可以使用m t i m e选项。如果系统突然没有可用空间了,
    很有可能某一个文件的长度在此期间增长迅速,这时就可以用m t i m e选项来查找这样的文件。
    用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的
    文件。
    希望在系统根目录下查找更改时间在5日以内的文件,可以用:
    $ find / -mtime -5 -print
    为了在/ v a r / a d m目录下查找更改时间在3日以前的文件,可以用:
    $ find /var/adm -mtime +3 -print
    查找比某个文件新或旧的文件
    如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用- n e w e r选
    项。它的一般形式为:
    newest_file_name ! oldest_file_name
    其中,!是逻辑非符号。
    这里有两个文件,它们的更改时间大约相差两天。
    下面给出的f i n d命令能够查找更改时间比文件a g e . a w k新但比文件b e l t s . a w k旧的文件:
    如果想使用f i n d命令的这一选项来查找更改时间在两个小时以内的文件,除非有一个现成
    的文件其更改时间恰好在两个小时以前,否则就没有可用来比较更改时间的文件。为了解决
    这一问题,可以首先创建一个文件并将其日期和时间戳设置为所需要的时间。这可以用t o u c h
    命令来实现。
    假设现在的时间是2 3 : 4 0,希望查找更改时间在两个小时以内的文件,可以首先创建这样
    一个文件:
    一个符合要求的文件已经被创建;这里我们假设今天是五月四日,而该文件的更改时间
    是2 1 : 4 0,比现在刚好早两个小时。
    现在我们就可以使用f i n d命令的- n e w e r选项在当前目录下查找所有更改时间在两个小时以
    内的文件:
    $ find . -newer dstamp -print
    使用type选项
    U N I X或L I N U X系统中有若干种不同的文件类型,这部分内容我们在前面的章节已经做了

    介绍,这里就不再赘述。如果要在/ e t c目录下查找所有的目录,可以用:
    $ find /etc -type d -print
    为了在当前目录下查找除目录以外的所有类型的文件,可以用:
    $ find . ! -type d -print
    为了在/ e t c目录下查找所有的符号链接文件,可以用:
    $ find /etc -type l -print
    2.1.9 使用size选项
    可以按照文件长度来查找文件,这里所指的文件长度既可以用块( b l o c k)来计量,也可
    以用字节来计量。以字节计量文件长度的表达形式为N c;以块计量文件长度只用数字表示即
    可。
    就我个人而言,我总是使用以字节计的方式,在按照文件长度查找文件时,大多数人都
    喜欢使用这种以字节表示的文件长度,而不用块的数目来表示,除非是在查看文件系统的大
    小,因为这时使用块来计量更容易转换。
    为了在当前目录下查找文件长度大于1 M字节的文件,可以用:
    $ find . -size +1000000c -print
    为了在/ h o m e / a p a c h e目录下查找文件长度恰好为1 0 0字节的文件,可以用:
    $ find /home/apache -size 100c -print
    为了在当前目录下查找长度超过1 0块的文件(一块等于5 1 2字节),可以用:
    $ find . -size +10 -print
    使用depth选项
    在使用f i n d命令时,可能希望先匹配所有的文件,再在子目录中查找。使用d e p t h选项就
    可以使f i n d命令这样做。这样做的一个原因就是,当在使用f i n d命令向磁带上备份文件系统时,
    希望首先备份所有的文件,其次再备份子目录中的文件。
    在下面的例子中, f i n d命令从文件系统的根目录开始,查找一个名为C O N . F I L E的文件。
    它将首先匹配所有的文件然后再进入子目录中查找。
    $ find / -name "CON.FILE" -depth -print
    使用mount选项
    在当前的文件系统中查找文件(不进入其他文件系统),可以使用f i n d命令的m o u n t选项。
    在下面的例子中,我们从当前目录开始查找位于本文件系统中文件名以X C结尾的文件:
    $ find . -name "*.XC" -mount -print
    使用cpio选项
    c p i o命令可以用来向磁带设备备份文件或从中恢复文件。可以使用f i n d命令在整个文件系
    统中(更多的情况下是在部分文件系统中)查找文件,然后用c p i o命令将其备份到磁带上。
    如果希望使用c p i o命令备份/ e t c、/ h o m e和/ a p p s目录中的文件,可以使用下面所给出的命
    令,不过要记住你是在文件系统的根目录下:

    (在上面的例子中,第一行末尾的\告诉s h e l l命令还未结束,忽略\后面的回车。)
    在上面的例子中,应当注意到路径中缺少/。这叫作相对路径。之所以使用相对路径,是
    因为在从磁带中恢复这些文件的时候,可以选择恢复文件的路径。例如,可以将这些文件先
    恢复到另外一个目录中,对它们进行某些操作后,再恢复到原始目录中。如果在备份时使用
    了绝对路径,例如/ e t c,那么在恢复时,就只能恢复到/ e t c目录中去,别无其他选择。在上面
    的例子中,我告诉f i n d命令首先进入/ e t c目录,然后是/ h o m e和/ a p p s目录,先匹配这些目录下
    的文件,然后再匹配其子目录中的文件,所有这些结果将通过管道传递给c p i o命令进行备份。
    顺便说一下,在上面的例子中c p i o命令使用了C 6 5 5 3 6选项,我本可以使用B选项,不过这
    样每块的大小只有5 1 2 字节,而使用了C 6 5 5 3 6 选项后,块的大小变成了6 4 K 字节
    (6 5 5 3 6 / 1 0 2 4)。
    使用exec或ok来执行shell命令
    当匹配到一些文件以后,可能希望对其进行某些操作,这时就可以使用- e x e c选项。一旦
    f i n d命令匹配到了相应的文件,就可以用- e x e c选项中的命令对其进行操作(在有些操作系统
    中只允许- e x e c选项执行诸如l s或ls -l这样的命令)。大多数用户使用这一选项是为了查找旧文
    件并删除它们。这里我强烈地建议你在真正执行r m命令删除文件之前,最好先用l s命令看一
    下,确认它们是所要删除的文件。
    e x e c选项后面跟随着所要执行的命令,然后是一对儿{ },一个空格和一个\,最后是一个
    分号。
    为了使用e x e c选项,必须要同时使用p r i n t选项。如果验证一下f i n d命令,会发现该命令只
    输出从当前路径起的相对路径及文件名。
    为了用ls -l命令列出所匹配到的文件,可以把ls -l命令放在f i n d命令的- e x e c选项中,例如:
    上面的例子中,f i n d命令匹配到了当前目录下的所有普通文件,并在- e x e c选项中使用ls -l
    命令将它们列出。
    为了在/ l o g s目录中查找更改时间在5日以前的文件并删除它们,可以用:
    $ find logs -type f -mtime +5 -exec rm {} \;
    记住,在s h e l l中用任何方式删除文件之前,应当先查看相应的文件,一定要小心!
    当使用诸如m v或r m命令时,可以使用- e x e c选项的安全模式。它将在对每个匹配到的文件
    进行操作之前提示你。在下面的例子中, f i n d命令在当前目录中查找所有文件名以. L O G结尾、
    更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。
    按y键删除文件,按n键不删除。
    任何形式的命令都可以在- e x e c选项中使用。在下面的例子中我们使用g r e p命令。f i n d命令

    首先匹配所有文件名为" p a s s w d *"的文件,例如p a s s w d、p a s s w d . o l d、p a s s w d . b a k,然后执
    行g r e p命令看看在这些文件中是否存在一个r o u n d e r用户。
    find命令的例子
    我们已经介绍了f i n d命令的基本选项,下面给出f i n d命令的一些其他的例子。
    为了匹配$ H O M E目录下的所有文件,下面两种方法都可以使用:
    $ find $HOME -print
    $ find ~ -print
    为了在当前目录中查找s u i d置位,文件属主具有读、写、执行权限,并且文件所属组的用
    户和其他用户具有读和执行的权限的文件,可以用:
    $ find . -type f -perm 4755 -print
    为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径,可以用:
    $ find / -type f -size 0 -exec ls -l {} \;
    为了查找/ v a r / l o g s目录中更改时间在7日以前的普通文件,并删除它们,可以用:
    $ find /var/logs -type f -mtime +7 -exec rm {} \;
    为了查找系统中所有属于a u d i t组的文件,可以用:
    $find /-name -group audit -print
    我们的一个审计系统每天创建一个审计日志文件。日志文件名的最后含有数字,这样我
    们一眼就可以看出哪个文件是最新的,哪个是最旧的。A d m i n . l o g 文件编上了序号:
    a d m i n . l o g . 0 0 1、a d m i n . l o g . 0 0 2等等。下面的f i n d命令将删除/ l o g s目录中访问时间在7日以前、
    含有数字后缀的a d m i n . l o g文件。该命令只检查三位数字,所以相应日志文件的后缀不要超过
    9 9 9。
    $ find /logs -name 'admin.log[0-9][0-9][0-9] '-atime +7 -exec rm {} \;
    为了查找当前文件系统中的所有目录并排序,可以用:
    $ find . -type d -print -local -mount |sort
    为了查找系统中所有的r m t磁带设备,可以用:
    $ find /dev/rmt -print
    xargs
    在使用f i n d命令的- e x e c选项处理匹配到的文件时, f i n d命令将所有匹配到的文件一起传递
    给e x e c执行。不幸的是,有些系统对能够传递给e x e c的命令长度有限制,这样在f i n d命令运行
    几分钟之后,就会出现溢出错误。错误信息通常是"参数列太长"或"参数列溢出"。这就是
    x a rg s命令的用处所在,特别是与f i n d命令一起使用。F i n d命令把匹配到的文件传递给x a rg s命
    令,而x a rg s命令每次只获取一部分文件而不是全部,不像- e x e c选项那样。这样它可以先处理
    最先获取的一部分文件,然后是下一批,并如此继续下去。在有些系统中,使用- e x e c选项会
    为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次
    执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;而使用

    x a rg s命令则只有一个进程。另外,在使用x a rg s命令时,究竟是一次获取所有的参数,还是分
    批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参
    数来确定。
    让我们来看看x a rg s命令是如何同f i n d命令一起使用的,并给出一些例子。
    下面的例子查找系统中的每一个普通文件,然后使用x a rg s命令来测试它们分别属于哪类
    文件:
    下面的例子在整个系统中查找内存信息转储文件(core dump) ,然后把结果保存到
    /tmp/core.log 文件中:
    $ find . -name "core" -print | xargs echo "" >/tmp/core.log
    下面的例子在/ a p p s / a u d i t目录下查找所有用户具有读、写和执行权限的文件,并收回相应
    的写权限:
    $ find /apps/audit -perm -7 -print | xargs chmod o-w
    在下面的例子中,我们用g r e p命令在所有的普通文件中搜索d e v i c e这个词:
    $ find / -type f -print | xargs grep "device"
    在下面的例子中,我们用g r e p命令在当前目录下的所有普通文件中搜索D B O这个词:
    $ find . -name \ *-type f -print | xargs grep "DBO"
    注意,在上面的例子中, \用来取消f i n d命令中的*在s h e l l中的特殊含义。
    小结
    f i n d命令是一个非常优秀的工具,它可以按照用户指定的准则来匹配文件。使用e x e c和
    x a rg s可以使用户对所匹配到的文件执行几乎所有的命令。

     
  • 高中同学聚会视频

    shishirui 09:30 on 2008/12/01 | 0 Permalink | Reply

     
c
撰写新文章
j
下一篇
k
上一篇
r
回复
e
编辑
o
显示/隐藏评论
t
返回顶部
esc
关闭