免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 232974 | 回复: 103

shell基础二:查找技巧,find及xargs的使用  关闭 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2004-11-09 20:39 |显示全部楼层
shell基础1:文件安全与权限
http://bbs.chinaunix.net/forum/viewtopic.php?t=434579&highlight=wingger

附:Linux的用户和用户组管理
http://bbs.chinaunix.net/forum/viewtopic.php?t=438660&highlight=wingger

shell基础二:查找技巧,find及xargs的使用
http://bbs.chinaunix.net/forum/viewtopic.php?t=441883&highlight=wingger

shell基础三和四:后台(crontab,at,&,nohup)及(*,?,[]等)
http://bbs.chinaunix.net/forum/viewtopic.php?t=442596&highlight=wingger

shell基础五:输入和输出(echo,read,cat,管道,tee,重定向等)
http://bbs.chinaunix.net/forum/viewtopic.php?t=444209&highlight=wingger

shell基础六七:命令执行顺序(||及&&,{}及())和正则表?
http://bbs.chinaunix.net/forum/viewtopic.php?t=445229&highlight=wingger

shell基础八:文本过滤工具(grep)
http://bbs.chinaunix.net/forum/viewtopic.php?t=446683&highlight=wingger

http://bbs.chinaunix.net/forum/viewtopic.php?t=448687&highlight=wingger
shell基础九:awk

http://bbs.chinaunix.net/forum/viewtopic.php?t=452942&highlight=wingger
shell基础十:sed

http://bbs.chinaunix.net/forum/viewtopic.php?t=457730&highlight=wingger
基础11:文件分类、合并和分割(sort,uniq,join,cut,paste,split)

shell基础十二:tr
http://bbs.chinaunix.net/forum/viewtopic.php?t=459099&highlight=wingger


呵呵,建议大家看《LINUX和UNIX基础编程》这本书哦,循序渐进

查看man find会更详细哦

我把我学习内容拷下来,一起学习

http://bbs.chinaunix.net/forum/viewtopic.php?t=434579&highlight=wingger
这个链接里是第一部分,是LINUX的基础,建议初学者好好看看


由于f i n d具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( N F S ),f i n d命令在该文件系统中同样有效,只你具有相应的权限。
在运行一个非常消耗资源的f i n d命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指3 0 G字节以上的文件系统)。

F i n d命令的一般形式为:

  1. find pathname -options [-print -exec -ok]
复制代码


让我们来看看该命令的参数:

pathname:  find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print:     find命令将匹配的文件输出到标准输出。
-exec:     find命令对匹配的文件执行该参数所给出的s h e l l命令。相应命令的形式为' command' {} \;,注意{ }和\;之间的空格。
-ok:       和- e x e c的作用相同,只不过以一种更为安全的模式来执行该参数所给出的s h e l l命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2004-11-09 20:43 |显示全部楼层

shell基础二:查找技巧,find及xargs的使用

呵呵~~~,find+xargs,才是绝佳组合~~

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2004-11-09 20:46 |显示全部楼层

shell基础二:查找技巧,find及xargs的使用

先了解一下find所带的参数,能实现哪些功能

find命令选项

-name:按照文件名查找文件。
-perm:按照文件权限来查找文件。
-prune:使用这一选项可以使f i n d命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被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选项。

-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 查找某一类型的文件,诸如:

  1. b - 块设备文件。
  2. d - 目录。
  3. c - 字符设备文件。
  4. p - 管道文件。
  5. l - 符号链接文件。
  6. 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命令,将这些文件备份到磁带设备中。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2004-11-09 20:47 |显示全部楼层

shell基础二:查找技巧,find及xargs的使用

[quote]原帖由 "寂寞烈火"]呵呵~~~,find+xargs,才是绝佳组合~~[/quote 发表:


忘写了,一会看到那里再发,对了,上次在LINUX发的贴子中有几次错误,我已经更正了,也是这本书的一部份,但改了不少

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2004-11-09 20:49 |显示全部楼层

shell基础二:查找技巧,find及xargs的使用

原帖由 "wingger" 发表:


忘写了,一会看到那里再发,对了,上次在LINUX发的贴子中有几次错误,我已经更正了,也是这本书的一部份,但改了不少

原来那篇贴子是你发的?~~~,佩服佩服~~~

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2004-11-09 20:54 |显示全部楼层

shell基础二:查找技巧,find及xargs的使用

原帖由 "寂寞烈火" 发表:

原来那篇贴子是你发的?~~~,佩服佩服~~~


俺就怕人骂我多此一举     

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
发表于 2004-11-09 20:57 |显示全部楼层

shell基础二:查找技巧,find及xargs的使用

原帖由 "wingger" 发表:


俺就怕人骂我多此一举     

sorry~~,我没有那个意思!
P,S:想学shell,先熟读一下置顶的13问吧~
http://bbs.chinaunix.net/forum/viewtopic.php?t=218853&show_type=new

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2004-11-09 21:09 |显示全部楼层

shell基础二:查找技巧,find及xargs的使用

原帖由 "寂寞烈火" 发表:

sorry~~,我没有那个意思!


呵呵,不是说你呢

下面这个选项我觉得这个很好用,俺以前都不知道,所以放在第一个说明:

使用exec或ok来执行shell命令

使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的

(在有些操作系统中只允许- 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选项中
  1. # find . -type f -exec ls -l {} \;
  2. -rw-r--r--    1 root     root        34928 2003-02-25  ./conf/httpd.conf
  3. -rw-r--r--    1 root     root        12959 2003-02-25  ./conf/magic
  4. -rw-r--r--    1 root     root          180 2003-02-25  ./conf.d/README
复制代码

上面的例子中,f i n d命令匹配到了当前目录下的所有普通文件,并在- e x e c选项中使用ls -l命令将它们列出。

在/ l o g s目录中查找更改时间在5日以前的文件并删除它们:
  1. $ 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日以上的文件,并删除它们,只不过在删除之前先给出提示。
  1. $ find . -name "*.conf"  -mtime +5 -ok rm {} \;
  2. < rm ... ./conf/httpd.conf > ? n
复制代码

按y键删除文件,按n键不删除。


任何形式的命令都可以在- e x e c选项中使用。

在下面的例子中我们使用g r e p命令。f i n d命令首先匹配所有文件名为“ passwd*”的文件,例如passwd、passwd.old、passwd.bak,然后执
行grep命令看看在这些文件中是否存在一个sam用户。

  1. # find /etc -name "passwd*" -exec grep "sam" {} \;
  2. sam:x:501:501::/usr/sam:/bin/bash
复制代码


论坛里-exec执行脚本的的例子
使用find 命令查找某个时间段的11点到12点的shell

http://www.chinaunix.net/forum/viewtopic.php?t=15821

论坛徽章:
0
发表于 2004-11-09 22:18 |显示全部楼层

shell基础二:查找技巧,find及xargs的使用

请问楼主《LINUX和UNIX基础编程》这本书是什么内容的,哪里有介绍吗?
我CHINA-PUB上没找着

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2004-11-09 22:21 |显示全部楼层

shell基础二:查找技巧,find及xargs的使用

原帖由 "bitbull" 发表:
请问楼主《LINUX和UNIX基础编程》这本书是什么内容的,哪里有介绍吗?
我CHINA-PUB上没找着


内容就是我发的这个,和上面的链接,     
还有很多用法,我才看到这里,呵,我觉得发出来大家一起学习比较好

书上有不少错误呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,8.5折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时8.5折扣期:2019年9月30日前


----------------------------------------

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP