仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 491|回复: 10
打印 上一主题 下一主题

[其他Linux] Linux制作之天天一个linux命令(22):find 命令的参数详解仓酷云

[复制链接]
莫相离 该用户已被删除
跳转到指定楼层
#
发表于 2015-1-18 11:24:39 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
学习linux,就意味着更快的开发效率,等更多关于软件本身或者说操作系统本身的理解。

find一些经常使用参数的一些经常使用实例和一些详细用法和注重事项。
1.利用name选项:
文件名选项是find命令最经常使用的选项,要末独自利用该选项,要末和其他选项一同利用。可使用某种文件名形式来婚配文件,记着要用引号将文件名形式引发来。不论以后路径是甚么,假如想要在本人的根目次$HOME中查找文件名切合*.log的文件,利用~作为pathname参数,海浪号~代表了你的$HOME目次。
find~-name"*.log"-print
想要在以后目次及子目次中查找一切的‘*.log‘文件,能够用:
find.-name"*.log"-print
想要确当前目次及子目次中查找文件名以一个年夜写字母开首的文件,能够用:
find.-name"[A-Z]*"-print
想要在/etc目次中查找文件名以host开首的文件,能够用:
find/etc-name"host*"-print
想要查找$HOME目次中的文件,能够用:
find~-name"*"-print或find.-print
要想让体系高负荷运转,就从根目次入手下手查找一切的文件。
find/-name"*"-print
假如想在以后目次查找文件名以一个个小写字母开首,最初是4到9加上.log停止的文件:
命令:
find.-name"[a-z]*[4-9].log"-print
输入:
[root@localhosttest]#ll
总计316
-rw-r--r--1rootroot30210811-1306:03log2012.log
-rw-r--r--1rootroot6111-1306:03log2013.log
-rw-r--r--1rootroot011-1306:03log2014.log
-rw-r--r--1rootroot011-1306:06log2015.log
drwxr-xr-x6rootroot409610-2701:58scf
drwxrwxr-x2rootroot409611-1306:08test3
drwxrwxr-x2rootroot409611-1305:50test4
[root@localhosttest]#find.-name"[a-z]*[4-9].log"-print
./log2014.log
./log2015.log
./test4/log2014.log
[root@localhosttest]#
2.用perm选项:
依照文件权限形式用-perm选项,按文件权限形式来查找文件的话。最好利用八进制的权限暗示法。
如在以后目次下查找文件权限位为755的文件,即文件属主能够读、写、实行,其他用户能够读、实行的文件,能够用:
[root@localhosttest]#find.-perm755-print
.
./scf
./scf/lib
./scf/service
./scf/service/deploy
./scf/service/deploy/product
./scf/service/deploy/info
./scf/doc
./scf/bin
[root@localhosttest]#
另有一种表达办法:在八进制数字后面要加一个横杠-,暗示都婚配,如-007就相称于777,-005相称于555,
命令:
find.-perm-005
输入:
[root@localhosttest]#ll
总计316
-rw-r--r--1rootroot30210811-1306:03log2012.log
-rw-r--r--1rootroot6111-1306:03log2013.log
-rw-r--r--1rootroot011-1306:03log2014.log
-rw-r--r--1rootroot011-1306:06log2015.log
drwxr-xr-x6rootroot409610-2701:58scf
drwxrwxr-x2rootroot409611-1306:08test3
drwxrwxr-x2rootroot409611-1305:50test4
[root@localhosttest]#find.-perm-005
.
./test4
./scf
./scf/lib
./scf/service
./scf/service/deploy
./scf/service/deploy/product
./scf/service/deploy/info
./scf/doc
./scf/bin
./test3
[root@localhosttest]#
3.疏忽某个目次:
假如在查找文件时但愿疏忽某个目次,由于你晓得谁人目次中没有你所要查找的文件,那末可使用-prune选项来指出必要疏忽的目次。在利用-prune选项时要小心,由于假如你同时利用了-depth选项,那末-prune选项就会被find命令疏忽。假如但愿在test目次下查找文件,但不但愿在test/test3目次下查找,能够用:
命令:
findtest-path"test/test3"-prune-o-print
输入:
[root@localhostsoft]#findtest-path"test/test3"-prune-o-print
test
test/log2014.log
test/log2015.log
test/test4
test/test4/log2014.log
test/test4/log2013.log
test/test4/log2012.log
test/scf
test/scf/lib
test/scf/service
test/scf/service/deploy
test/scf/service/deploy/product
test/scf/service/deploy/info
test/scf/doc
test/scf/bin
test/log2013.log
test/log2012.log
[root@localhostsoft]#
4.利用find查找文件的时分怎样避开某个文件目次:
实例1:在test目次下查找不在test4子目次以内的一切文件
命令:
findtest-path"test/test4"-prune-o-print
输入:
[root@localhostsoft]#findtest
test
test/log2014.log
test/log2015.log
test/test4
test/test4/log2014.log
test/test4/log2013.log
test/test4/log2012.log
test/scf
test/scf/lib
test/scf/service
test/scf/service/deploy
test/scf/service/deploy/product
test/scf/service/deploy/info
test/scf/doc
test/scf/bin
test/log2013.log
test/log2012.log
test/test3
[root@localhostsoft]#findtest-path"test/test4"-prune-o-print
test
test/log2014.log
test/log2015.log
test/scf
test/scf/lib
test/scf/service
test/scf/service/deploy
test/scf/service/deploy/product
test/scf/service/deploy/info
test/scf/doc
test/scf/bin
test/log2013.log
test/log2012.log
test/test3
[root@localhostsoft]#
申明:
find[-path..][expression]
在路径列表的前面的是表达式
-path"test"-prune-o-print是-path"test"-a-prune-o-print的简写表达式按按次求值,-a和-o都是短路求值,与shell的&&和||相似假如
-path"test"为真,则求值-prune,-prune前往真,与逻辑表达式为真;不然不求值-prune,与逻辑表达式为假。假如-path"test"-a-prune为假,则求值-print,-print前往真,或逻辑表达式为真;不然不求值-print,或逻辑表达式为真。
这个表达式组合惯例能够用伪码写为:
if-path"test"then
-prune
else
-print
实例2:避开多个文件夹:
命令:
findtest(-pathtest/test4-o-pathtest/test3)-prune-o-print
输入:
[root@localhostsoft]#findtest(-pathtest/test4-o-pathtest/test3)-prune-o-print
test
test/log2014.log
test/log2015.log
test/scf
test/scf/lib
test/scf/service
test/scf/service/deploy
test/scf/service/deploy/product
test/scf/service/deploy/info
test/scf/doc
test/scf/bin
test/log2013.log
test/log2012.log
[root@localhostsoft]#
申明:
圆括号暗示表达式的分离。暗示援用,即唆使shell不合错误前面的字符作特别注释,而留给find命令往注释其意义。
实例3:查找某一断定文件,-name等选项加在-o以后
命令:
findtest(-pathtest/test4-o-pathtest/test3)-prune-o-name"*.log"-print
输入:
[root@localhostsoft]#findtest(-pathtest/test4-o-pathtest/test3)-prune-o-name"*.log"-print
test/log2014.log
test/log2015.log
test/log2013.log
test/log2012.log
[root@localhostsoft]#
5.利用user和nouser选项:
按文件属主查找文件:
实例1:在$HOME目次中查找文件属主为peida的文件
命令:
find~-userpeida-print
实例2:在/etc目次下查找文件属主为peida的文件:
命令:
find/etc-userpeida-print
申明:
实例3:为了查找属主帐户已被删除的文件,可使用-nouser选项。在/home目次下查找一切的这类文件
命令:
find/home-nouser-print
申明:
如许就可以够找到那些属主在/etc/passwd文件中没有无效帐户的文件。在利用-nouser选项时,不用给出用户名;find命令可以为你完成响应的事情。
6.利用group和nogroup选项:
就像user和nouser选项一样,针对文件所属于的用户组,find命令也具有一样的选项,为了在/apps目次下查找属于gem用户组的文件,能够用:
find/apps-groupgem-print
要查找没有无效所属用户组的一切文件,可使用nogroup选项。上面的find命令从文件体系的根目次处查找如许的文件:
find/-nogroup-print
7.依照变动工夫或会见工夫等查找文件:
假如但愿依照变动工夫来查找文件,可使用mtime,atime或ctime选项。假如体系俄然没有可用空间了,很有大概某一个文件的长度在此时代增加敏捷,这时候就能够用mtime选项来查找如许的文件。
用减号-来限制变动工夫在距今n日之内的文件,而用加号+来限制变动工夫在距今n日之前的文件。
但愿在体系根目次下查找变动工夫在5日之内的文件,能够用:
find/-mtime-5-print
为了在/var/adm目次下查找变动工夫在3日之前的文件,能够用:
find/var/adm-mtime+3-print
8.查找比某个文件新或旧的文件:
假如但愿查找变动工夫比某个文件新但比另外一个文件旧的一切文件,可使用-newer选项。
它的一样平常情势为:
newest_file_name!oldest_file_name
个中,!是逻辑非标记。
实例1:查找变动工夫比文件log2012.log新但比文件log2017.log旧的文件
命令:
find-newerlog2012.log!-newerlog2017.log
输入:
[root@localhosttest]#ll
总计316
-rw-r--r--1rootroot30210811-1306:03log2012.log
-rw-r--r--1rootroot6111-1306:03log2013.log
-rw-r--r--1rootroot011-1306:03log2014.log
-rw-r--r--1rootroot011-1306:06log2015.log
-rw-r--r--1rootroot011-1614:41log2016.log
-rw-r--r--1rootroot011-1614:43log2017.log
drwxr-xr-x6rootroot409610-2701:58scf
drwxrwxr-x2rootroot409611-1306:08test3
drwxrwxr-x2rootroot409611-1305:50test4
[root@localhosttest]#find-newerlog2012.log!-newerlog2017.log
.
./log2015.log
./log2017.log
./log2016.log
./test3
[root@localhosttest]#
实例2:查找变动工夫在比log2012.log文件新的文件
命令:
find.-newerlog2012.log-print
输入:
[root@localhosttest]#find-newerlog2012.log
.
./log2015.log
./log2017.log
./log2016.log
./test3
[root@localhosttest]#
9.利用type选项:
实例1:在/etc目次下查找一切的目次
命令:
find/etc-typed-print
实例2:在以后目次下查找除目次之外的一切范例的文件
命令:
find.!-typed-print
实例3:在/etc目次下查找一切的标记链接文件
命令:
find/etc-typel-print
10.利用size选项:
能够依照文件长度来查找文件,这里所指的文件长度既能够用块(block)来计量,也能够用字节来计量。以字节计量文件长度的表达情势为Nc;以块计量文件长度只用数字暗示便可。
在依照文件长度查找文件时,一样平常利用这类以字节暗示的文件长度,在检察文件体系的巨细,由于这时候利用块来计量更简单转换。
实例1:在以后目次下查找文件长度年夜于1M字节的文件
命令:
find.-size+1000000c-print
实例2:在/home/apache目次下查找文件长度刚好为100字节的文件:
命令:
find/home/apache-size100c-print
实例3:在以后目次下查找长度凌驾10块的文件(一块即是512字节)
命令:
find.-size+10-print
11.利用depth选项:

尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。
若相依 该用户已被删除
10#
发表于 2015-3-20 19:00:08 | 只看该作者
对我们学习操作系统有很大的帮助,加深我们对OS的理解。?
飘飘悠悠 该用户已被删除
9#
发表于 2015-3-13 09:53:31 | 只看该作者
我们自学,就这个循环的过程中,我们学习了基本操作,用vi,shell,模拟内存的分配过程等一些OS管理。
深爱那片海 该用户已被删除
8#
发表于 2015-3-13 05:10:01 | 只看该作者
放手去搞。尽量不要提问,运用搜索找答案,或者看wiki,从原理上理解操作系统的本质,而不是满足于使用几个技巧。尽量看英文资料。
小妖女 该用户已被删除
7#
发表于 2015-3-9 01:25:33 | 只看该作者
掌握硬件配置,如显卡,声卡,网卡等,硬件只要不是太老或太新一般都能被支持,作为一名Linux系统管理员建议多阅读有关硬件配置文章,对各种不支持或支持不太好的硬件有深刻的了解。
灵魂腐蚀 该用户已被删除
6#
发表于 2015-3-4 06:07:36 | 只看该作者
永中office 2004增强版安装只需要默认安装即可使用并操作大多与win系统雷同,打印机的配置和管理,记录光盘等。
山那边是海 该用户已被删除
5#
发表于 2015-2-18 03:44:09 | 只看该作者
不同于Windows?系统需要花钱购买,因为Linux的核心是免费的,自由使用的,核心源代码是开放的。
老尸 该用户已被删除
地板
发表于 2015-2-6 18:45:37 | 只看该作者
尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。
因胸联盟 该用户已被删除
板凳
发表于 2015-1-31 08:10:27 | 只看该作者
Linux只是个内核!这点很重要,你必须理解这一点。只有一个内核是不能构成一个操作系统的。
小魔女 该用户已被删除
沙发
发表于 2015-1-25 14:58:27 | 只看该作者
下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢”这样的问题。
再见西城 该用户已被删除
楼主
发表于 2015-1-22 07:53:02 | 只看该作者
应对Linux的发展历史和特点有所了解,Linux是抢占式多任务多用户操作系统,Linux最大的优点在于其作为服务器的强大功能,同时支持多种应用程序及开发工具。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-11 11:11

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表