随笔-59  评论-31  文章-0  trackbacks-0
这里总结一些常用到的关于find的命令的操作: 
Find命令的一般形式为: 
Shell代码  收藏代码
  1. # find pathname -options [-print -exec -ok]  

让我们来看看该命令的参数: 
pathname find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。 
-print find命令将匹配的文件输出到标准输出。 
-exec  find命令对匹配的文件执行该参数所给出的shell命令。 
-ok 和- exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行. 
find命令选项 
1. -name   按照文件名查找文件 
Java代码  收藏代码
  1. find -name test.txt  
  2. # find ~ -name "xxx.txt" -print// ~ 表示$HOME目录  
  3. # find . -name "xxx.txt" -print// . 表示当前目录  
  4. # find /etc -name "host*" -print// / 在指定目录中查找  

2.-perm   按照文件权限来查找文件 
Java代码  收藏代码
  1. find -perm 755  
  2. # find ~ -perm 755 -print // 意义同name属性  
  3. # find . -perm 755 -print  
  4. # find /home -perm 755 -print  

3.-mtime -n +n   按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。 
Java代码  收藏代码
  1. find -mtime -2  

如果想使用find命令的这一选项来查找更改时间在两个小时以内的文件,除非有一个现成 
的文件其更改时间恰好在两个小时以前,否则就没有可用来比较更改时间的文件,为了解决 
这一问题,可以首先创建一个文件并将其日期和时间戳设置为所需要的时间。这可以用touch 
命令来实现,假设现在的时间是21:40,希望查找更改时间在两个小时以内的文件,可以首先创建这样 
Java代码  收藏代码
  1. # touch -t 02032140 dstamp  
  2. # ls -l dstamp  
  3. -rw-r--r--    1 root     root            0  2月  3 21:40 dstamp  
  4. # find . -newer dstamp  

一个文件 
4.-newer file1  查找更改时间比文件file1新的文件。 
Java代码  收藏代码
  1. # find -newer test.txt  

5.-type   查找某一类型的文件 
b - 块设备文件。 
d - 目录。 
c - 字符设备文件。 
p - 管道文件。 
l - 符号链接文件。 
f - 普通文件。 
Java代码  收藏代码
  1. # find -type d  
  2. # find . ! -type d //查找当前目录下不是目录文件的其他文件  
  3. # find ~ -type d//意义同name  
  4. # find /etc -type d//意义同name  

6.使用size选项 
可以按照文件长度来查找文件,这里所指的文件长度既可以用块(block)来计量,也可以用字节来计量。以字节计量文件长度的表达形式为 Nc;以块计量文件长度只用数字表示即可。 
Java代码  收藏代码
  1. # find . -size -1000000c//当前目录下查找文件长度小于1M字节的文件  
  2. # find . -size +100c  

7 find 和 xargs 
在使用find命令的-exec选项处理匹配到的文件时,find命令将所有匹配到的文件一起传递 
给exee执行 
Java代码  收藏代码
  1. # find . -name "core" -print | xargs echo "" >/tmp/core.log//整个系统中查找内存信息转储文件然后把结果保存到/tmp/core.log 文件中  
  2. # find /apps/audit -perm -7 -print | xargs chmod o-w//在/apps/audit目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限  
  3. # find / -type f -print | xargs grep "device"//用grep命令在所有的普通文件中搜索device这个词  
posted on 2011-12-21 10:52 RoyPayne 阅读(204) 评论(0)  编辑  收藏 所属分类: linux

只有注册用户登录后才能发表评论。


网站导航: