Chinaunix首页 | 论坛 | 博客
  • 博客访问: 901790
  • 博文数量: 113
  • 博客积分: 3160
  • 博客等级: 少校
  • 技术积分: 1801
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-19 10:09
文章分类

全部博文(113)

分类: LINUX

2012-06-02 21:28:48

1:find

 

 

find的命令的功能就是查找文件,它非常有用。

 

 

find的命令的基本语法格式如下:

find [path] [options] [tests] [actions]

 

 

pathfind的搜索路径,可以使绝对路径/bin也可以是相对路径如.,或者使用多个路径。

 

options:下面是一些常用的选项

 

-depth 在查看目录本身之前先搜索目录的内容

-follow 跟随符号链接

-maxdepth N 最多搜索N层目录

-mount(或-xdev)不搜索其它文件系统

 

 

tests:find下测试选项非常多,每种测试都返回两种结果:true或者false。如果一个测试返回false,它就会停止并对当前文件进行处理,然后接着搜索;如果返回true,它会接着搜索。下面是一些常用的测试选项。

 

 

-atime N 文件在N天之前被访问过

-mtime N 文件在N天之前被修改过

-name pattern 文件名匹配的模式pattern,为了确保pattern被直接传递给find命令而不是shell处理,pattern必须加上括号。

-newer other 文件比other文件要新

-type c 文件的类型为cc可以是d(目录),f(普通文件)或者特殊类型。

-user user 文件的拥有者是指定的用户user

 

 

除此之外,我们还可以使用操作符进行组合测试,其中包括与或非三种。

 

-not(!) 测试取反

-and(-a)两个测试都必须为真

-or(-o) 两个测试之一必须为真

 

可以利用圆括号来强制测试和操作符有关的优先级。例子如下:

\(-newer X -o -name "_*"\)

它的内容是搜索比X文件内容要新,或者以下划线开头的文件。

 

 

actions:常用选项如下

 

-exec command 执行一条命令,这个最常用。

-ok command 同上,只不过在执行每次命令时会询问用户

-print 打印文件名

-ls 对当前文件名使用命令ls -dils

 

 

实例:

 

1find / -name wish -print

 

在本地机器上查找名为wish的文件,并打印出来。

 

2find / -mount -name wish -print

 

在当前文件系统下查找名为wish的文件。

 

3find . -newer X -print

 

在当前目录下查找比X新的文件。

 

4find . \(-name "_*" -or -newer X \) -type f -print

 

在当前目录下查找以下划线开头的文件或者比X新的文件,顺便打印出来。

 

5find . -newer X -type f -exec ls -l {} \;

 

在当前目录下查找比X新的文件,同时对这些文件执行ls -l命令。

 

 

 

2:重定向

 

 

文件描述符0表示一个程序的标准输入,文件描述符1表示标准输出,而文件描述符2表示标准错误输出。

 

>:将标准输出重定向到某文件,但是如果该文件已经存在,则会被覆盖。

 

>>:将标准输出重定向到某文件,如果该文件已经存在,就追加在文件最后。

 

 

利用重定向丢弃输出内容:

ls less > /dev/null 2&>1

 

阅读(2847) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~