分类: linux
2012-06-02 21:28:48
1:find
find的命令的功能就是查找文件,它非常有用。
find的命令的基本语法格式如下:
find [path] [options] [tests] [actions]
path:find的搜索路径,可以使绝对路径/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文件的类型为c,c可以是d(目录),f(普通文件)或者特殊类型。
-user user文件的拥有者是指定的用户user
除此之外,我们还可以使用操作符进行组合测试,其中包括与或非三种。
-not(!)测试取反
-and(-a)两个测试都必须为真
-or(-o)两个测试之一必须为真
可以利用圆括号来强制测试和操作符有关的优先级。例子如下:
\(-newer x -o -name "_*"\)
它的内容是搜索比x文件内容要新,或者以下划线开头的文件。
actions:常用选项如下
-exec command 执行一条命令,这个最常用。
-ok command 同上,只不过在执行每次命令时会询问用户
-print打印文件名
-ls对当前文件名使用命令ls -dils
实例:
1:find / -name wish -print
在本地机器上查找名为wish的文件,并打印出来。
2:find / -mount -name wish -print
在当前文件系统下查找名为wish的文件。
3:find . -newer x -print
在当前目录下查找比x新的文件。
4:find . \(-name "_*" -or -newer x \) -type f -print
在当前目录下查找以下划线开头的文件或者比x新的文件,顺便打印出来。
5:find . -newer x -type f -exec ls -l {} \;
在当前目录下查找比x新的文件,同时对这些文件执行ls -l命令。
2:重定向
文件描述符0表示一个程序的标准输入,文件描述符1表示标准输出,而文件描述符2表示标准错误输出。
>:将标准输出重定向到某文件,但是如果该文件已经存在,则会被覆盖。
>>:将标准输出重定向到某文件,如果该文件已经存在,就追加在文件最后。
利用重定向丢弃输出内容:
ls less > /dev/null 2&>1