iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >数据库中文件查找命令怎么用
  • 770
分享到

数据库中文件查找命令怎么用

2024-04-02 19:04:59 770人浏览 薄情痞子
摘要

这篇文章给大家分享的是有关数据库中文件查找命令怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。文件查找:      

这篇文章给大家分享的是有关数据库中文件查找命令怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

文件查找:

         在文件系统上查找符合条件的文件;

                   (文件查找与我们之前学过的grep是不一样,grep是过滤文本的)

         文件查找实现工具:locate,find

                   (locate和find两者间的工作法则,工作模式不太一样,locate的实现机制,locate查找的机制是根据事先构建的索引来完成查找文件查找的

                   举例:locate  passwd

                            当我们执行上面的命令时会发现,虽然有文件名中包含了“passwd”但是整个文件名并不是完整的只叫passwd,locate是做模糊匹配的,就算是路径名中包含了“passwd”locate也会找出,而且发现他的执行速度非常快,locate的查找过程并不是遍历整个文件系统来实现的,而是把当前文件系统上的所有文件,都给读取出来,构建成一个查找数据库,而locate在搜索文件时,就是根据用户给定的关键词,在路径中做模糊匹配,)

         locate实现机制:     //意思就是说,要想使用locate这个命令则要先执行下面的操作

                  依赖于事先构建好的索引库:这个索引库有两种方法实现:

                            (1)系统自动实现;(周期性任务计划);

                          (2)手动更新数据库(updatedb);

有了这个查找库后,locate就可以在这个库里查询。

         我们根据这个索引库查找到的文件比不一定是准确的。这个数据库仅仅是存放的文件的路径,而不是文件正真的存在,并且这个路径还是过去某一时刻被更新的路径。

         比如说在某一时刻我们更新完这个查找数据库之后,我们有删除或者添加了一些文件,但是这数据库并没有及时的更新,这样locate在这个数据库中进行的查找操作,都不是精确的。

举例:

         我们执行一下命令:

                   [root@Centos6~]# locate passwd    //如果不能使用的话,我们先更新一下数据

                                                                                             updatedb

         显示如下截图:

                            数据库中文件查找命令怎么用

由上面的显示我们发现,上面匹配到的内容,虽然都包含“passwd”但不是只包含“passwd”,所以locate是做模糊匹配的。locate的查找并不是遍历整个文件来查找的,而是将之前的数据库读取出来构建一个查找数据库。

                   locate工作特点:

                            查找速度快;

                            模糊查找;

                            非实时查找;

(命令的运行方式:)

         格式:

                     locate  [OPTioN]... PATTERN...

         locate选项:

                   -b:只匹配路径中的基名;但仍然是模糊查找

                   -c:仅仅统计出共有多少个符合条件的文件;(仅统计文件的数量)

                   -r:BRE,是基于基本正则表达式

         注意:索引构建过程需要遍历整个文件系统,极消耗资源;即执行update命令,然后才能使用locate

find

         (find功能非常强大,相比较locate而言,find的执行过程,并没有数据库这个环节,find而是通过实时遍历来查找,我们应该让我们find工作在我们的整个根文件系统的某一个分支上)

         find实时查找工具,通过遍历指定起始路径下文件系统层级结构完成文件查找;

         find工作特性:

                   查找速度略慢;

                   精确查找;

                   实时查找;

举例:

         [root@centos6~]# find /etc -name"passwd"

         /etc/pam.d/passwd

         /etc/passwd

         [root@centos6~]#

         格式:

                   find[-H] [-L] [-P] [-D debuGopts] [-Olevel] [path...] [expression]

         用法:

                   find  [OPTIONS] [查找起始路径]  [查找条件]  [处理动作]

                            查找起始路径:指定具体搜索目标起始路径,默认为当前的目录;

                            查找条件:指定的查找标准,可以根据文件名,大小,类型,从属关系,权限                                                 等等标准进行;如果不指定查找条件,默认为找出指定路径下的所                                            有文件;

                            处理动作:对符合查找条件的文件做出的操作,例如删除等操作,默认为输出                                                至标准输出;

举例:

         [root@centos6~]# find ./     //没有指定查找条件,在当前目录下查找,所有文件。表                                                                    示当前目录下所有的文件都符合

         查找条件(tests ):在find中查找条件是重点,在一个目录层级模式下,去读取文件的

                   表达式:选项和测试

         测试:     结果通常为布尔型(“true”,“false”)

                   根据文件名查找(也可以说测试):

                            -name  "pattern"

                            -iname  "pattern":表示不区分文件名的大小写;

                                               上面的pattern支持golb风格的通配符;而不是正则表达式的通配符

                                               模式一般使用引号引起来

                                                        *,?,[],[^]

如果我们想在find查找模式中使用正则表达式进行查找,那么我们就使用一个选项“-regex”,但是这个选项是基于整个路径名进行查找,就相当于locate,而不是精确查找。

                                     -regex  pattern:基于正则表达式 模式查找文件,匹配是整个路径,而非                                                                          基名;

                            regex这个命令很少用。

举例:

         例一:

                   [root@centos6~]# find /etc -name"passwd"    //表示在目录“/etc”目录下精确查                                                                                                                           找名称为“passwd”的文件

                   /etc/pam.d/passwd

                   /etc/passwd

                   [root@centos6~]# 

         或:

                   [root@centos6~]# find /etc -iname"passwd"     //iname不区分大小写

                   /etc/pam.d/passwd

                   /etc/passwd

                   [root@centos6~]#

         find是一个精确查找文件名,如果想查找包含“passwd”的文件名,并且passwd结尾,则模式就这样表示:“*passwd”,如果是passwd开头,则这样表示:“passwd*”,星号是glob风格的通配。如果是想查找在passwd后面有一个字符,那么就这样表示:passwd?后加一个问号。问号能表示特殊符号,如果们想查找的是在passwd后面只有一个字母或者数字,而不是特殊符号,那么我们就不能用问号了,应该这样表示:“passwd[[:alnum:]]”

                   所以在find中使用的通配符,可以使用glob风格的:*  ? []   [^]

         passwd  后面加一个字符你

根据文件的从属关系查找:(属主属组)

         -user  USERNAME:查找属主指定用户的所有条件;

         -groupGRPNAME:查找属组指定组的所有文件;

举例:

         [root@centos6~]# find /tmp -user dong

         /tmp/dongdongfile

         [root@centos6~]#

         -uid  UID:查找属主指定的UID的所有文件;

         -gid  GID:查找属组指定的GID的所有文件;

举例:

         [root@centos6~]# find /tmp -uid 508

         /tmp/hahaha

         [root@centos6~]#

(当我们用一个用户创建了文件或者目录以后,然后我们将这个用户以及用户的家目录以后,我们再看以前用这个用户创建的文件或者目录,这些文件或者目录的原信息上面显示属主属组就成了uid号,我们可以根据这个号也能进行查找。或者根据“nouser”进行查找。

                   这些没有属主没有属组的文件,在文件系统上是非常危险的,因为将来我们建立一个用户,那个用户刚好建立一个ID号,那么这个文件天然的就属于这个用户了,而这个文件加入又上传一些用户的私有信息,所以我们应该定期的查找当前系统上哪些文件是没有属主或者属组的,我们给他找一个新的属主或者属组,当然新的属组。属主一般就是root,因为只有root才有权限才能更改文件的属主属组。)     

         -nouser:查找没有属主 的文件;

         -nogroup:查找没有属组的文件;

根据文件的类型查找:

         -type  TYPE

                   f:普通文件,在ls命令中显示为“-”

                   d:目录文件

                   l:符号链接文件

                   b:块设备文件

                   c:字符设备文件

                   p:管道文件

                   s:套接字文件

举例:

         [root@centos6~]# find /dev -type b -ls   //查找/dev目录下块设备文件,后面的“-ls”                是处理动作,find默认的处理动作是“-print”是显示在屏幕上,如果使用“-ls”则就相         当于执行“ls  -l”命令,执行将找到的每个文件执行ls -l命令。显示文件的详细信息

         [root@centos6~]# find /dev -type l -ls    //查看目录/dev下有哪些符号链接,并且这些                                                                                                  上链接的指向。

组合测试:

         (实现更加复杂的查找,一般就是通过不同条件的组合进行查找。)

                   在find命令查找时,如果有多个条件进行组合,则即使不加逻辑运算符进行连接,                   默认是执行“与”运算。

         与:-a表示两个条件都满足时才会显示。

         或:-o

         非:-not,!

举例:

         [root@centos6~]#  find  /dev  -nouser   -type b   -ls

         等同于:   find /dev  -nouser  -a -type  b  -ls

         组合测试:

                   与:-a,默认组合逻辑;

                   或:-o     (复习,在grep中的正则表达式选项中,-o表示只显示匹配到的字符)

                   非:-not或!

举例:

                   我们查找/tmp目录下不是普通文件的文件

                            解:

                                     find  /tmp  -not  -type f  -ls

练习:

         1.找出/tmp目录下属主为非root,且文件名包含fstab字符串的文件;

                   (找出/tmp目录下属主为非root的所有文件;

                            解:  find  /tmp  -not -user  root  -ls)

                   解:

                            find /tmp  -user  root -a  -name  "*fstab*"

         2.找出/tmp目录下文件名中不包含fstab字符串的文件;

                   解:

                            find /tmp  -name  "*[^fstab]*"                 

                   或:

                            find /tmp  -not  -iname "*fstab*"

         3.找出/tmp目录下属主为非root,而且文件名不包含fstab字符串的文件;

                   解:

                            find /tmp  -nouser  root -a  -name  "*[^fstab]*"

                   或:

                            find /tmp  -not  -user root   -a  -not -iname  "*fstab*"

                   或:

                            find /tmp  -not  \(  -user  root   -o -not  -iname  \)   "*fstab*"

(1)find  /tmp  -not -user  root   -a -not  -iname  "*fstab*"

等价于

(2)find  /tmp  -not  \(  -user root   -o -not  -iname  \)   "*fstab*"

上面的两个查询语句使用了德摩根定律:

                   !A -a !B=!(A -o B)

                   !A-o !B=!(A -a B)

根据文件的大小查找:

         -size  [+|-] #UNIT

                   解析:#:表示一个数字,UNIT:表示单位;

                   常用单位:K  M  G    

         解释:当根据大小查找的时候,带加减号,表示大于指定的大小或者小于指定的大小查找,如果不加加减号时,则代表精确查找。

         #UNIT:(#-1,#]

                  虽然是精确查找,但是精确是指半开半闭区间。

                            举例:当我们的查找为100K时,则文件的实际大小在 “99K<#<=100K”都是                                        符合的。

         -#UNIT:(0,#-1]

         +#UNIT:(#,+oo)

根据时间戳查找:

         以“天”为单位:

                   -atime  [+|-]#    //也支持加上一个数字,表示查看多少天的信息,

                                                                 这里没有单位,因为本来就是以天为单位;

                            #:                     //表示距离现在这一刻过去多少天的文件

举例:

         我们查找“-atime 3”这就表示我们查找过去3天的文件,那么这个3天就一定是距离此刻的过去72小时吗?显然不是,他也跟查找文件的大小那样是有一个范围的,

         也就是说,当我们写“-atime  3”时,我们查找的是距离此刻大于72小时,但是小于96小时,也就是“[72,96)”也就是“[#,#+1)”

                   所以:

                            #:[#,#+1)

                            -#:[0,#)

                            +#:[#+1,+oo)

演示:

         查找我们至少有一周(7天之前)访问过的文件。

                   解:

                            find /etc  -atime  +7

注意上面的#是以正数来写的。

                   -mtime

                   -ctime               

         以“分钟”为单位:             

                   -amin

                   -mmin

                   -cmin

根据权限查找:

         -perm  [/|-] mode

                   -perm  mode:精确权限匹配;

                   -perm  /mode:任何一类用户(u  g  o)的权限中的任何一位(r  w  x)符合                                                            条件既满足;

                                               9位权限之间存在“或”关系;只要有一位满足条件即可

                   -perm  -mode:每一类用户(u  g  o)的权限中的每一位(r  w  x)同时符合                                                             条件即满足;

                                               9位权限之间存在“与”关系;所有用户指定的权限位全部满足条件                                                即可

注意:find传递查找到的文件路径至后面的命令时,是先查找出所有符合条件的文件路径,   并一次性传递给后面的命令;

         但是有些命令不能接受过长的参数,此时命令执行会失败,另一种方式可规避此问题:

         即使用管道,将find命令查找到的文件传递给xargs,写法就是:

          “find命令 | xargs  COMMAND”

课外作业:

                            学习xargs命令的用法:

         演示:-perm /mode

[root@centos6 testdir]# mkdir test

 [root@centos6testdir]# cd test/

[root@centos6 test]# touch a b c d e f

 [root@centos6test]# chmod 640 a

[root@centos6 test]# chmod 666 b

[root@centos6 test]# chmod 440 c

[root@centos6 test]# chmod 775 d

[root@centos6 test]# chmod 777 e

 [root@centos6test]# find ./ -perm /666 -ls   

130561   4 drwxr-xr-x   2 root     root         4096 Nov  3 21:09 ./

130564   0 -r--r-----   1 root     root            0 Nov  3 21:09 ./c

130562   0 -rw-r-----   1 root     root            0 Nov  3 21:09 ./a

130566   0 -rwxrwxrwx   1 root     root            0 Nov  3 21:09 ./e

130565   0 -rwxrwxr-x   1 root     root            0 Nov  3 21:09 ./d

130567   0 -rw-r--r--   1 root     root           0 Nov  3 21:09 ./f

130563   0 -rw-rw-rw-   1 root     root            0 Nov  3 21:09 ./b

[root@centos6 test]#

(2)演示:

                   查找至少有一类用户拥有写权限的文件:

[root@centos6 test]# find ./ -perm /222 -ls

130561   4 drwxr-xr-x   2 root     root         4096 Nov  3 21:09 ./

130562   0 -rw-r-----   1 root     root            0 Nov  3 21:09 ./a

130566   0 -rwxrwxrwx   1 root     root            0 Nov  3 21:09 ./e

130565   0 -rwxrwxr-x   1 root     root            0 Nov  3 21:09 ./d

130567   0 -rw-r--r--   1 root     root            0 Nov  3 21:09 ./f

130563   0 -rw-rw-rw-   1 root     root            0 Nov  3 21:09 ./b

[root@centos6 test]#

[root@centos6 test]# find ./ -perm /111 -ls    //至少有一类用户有执行权限

130561   4 drwxr-xr-x   2 root     root         4096 Nov  3 21:09 ./

130566   0 -rwxrwxrwx   1 root     root            0 Nov  3 21:09 ./e

130565   0 -rwxrwxr-x   1 root     root            0 Nov  3 21:09 ./d

[root@centos6 test]#                                                                                                                                                                                                                                                                                                                                                                    

[root@centos6 test]# find ./ -perm /001 -ls   //其他用户有执行权限,0表示不关心属主属组

130561   4 drwxr-xr-x   2 root     root         4096 Nov  3 21:09 ./

130566   0 -rwxrwxrwx   1 root     root            0 Nov  3 21:09 ./e

130565   0 -rwxrwxr-x   1 root     root           0 Nov  3 21:09 ./d

[root@centos6 test]#      

[root@centos6 test]# find ./ -perm /002 -ls    //查找其他用户有写权限的文件

130566   0 -rwxrwxrwx   1 root     root            0 Nov  3 21:09 ./e

130563   0 -rw-rw-rw-   1 root     root            0 Nov  3 21:09 ./b

[root@centos6 test]#       

演示:-perm  -moed    

[root@centos6 test]# find ./ -perm /222 -ls    //查找至少有一类用户拥有写权限

130561   4 drwxr-xr-x   2 root     root         4096 Nov  3 21:09 ./

130562   0 -rw-r-----   1 root     root            0 Nov  3 21:09 ./a

130566   0 -rwxrwxrwx   1 root     root            0 Nov  3 21:09 ./e

130565   0 -rwxrwxr-x   1 root     root            0 Nov  3 21:09 ./d

130567   0 -rw-r--r--   1 root     root            0 Nov  3 21:09 ./f

130563   0 -rw-rw-rw-   1 root     root           0 Nov  3 21:09 ./b

[root@centos6 test]# find ./ -perm -222 -ls   //查找所有的用户都有写权限

130566   0 -rwxrwxrwx   1 root     root            0 Nov  3 21:09 ./e

130563   0 -rw-rw-rw-   1 root     root            0 Nov  3 21:09 ./b

[root@centos6 test]# find ./ -not -perm -222 -ls   //查找三类用户中至少有一位没有写权限

130561   4 drwxr-xr-x   2 root     root         4096 Nov  3 21:09 ./

130564   0 -r--r-----   1 root     root            0 Nov  3 21:09 ./c

130562   0 -rw-r-----   1 root     root            0 Nov  3 21:09 ./a

130565   0 -rwxrwxr-x   1 root     root            0 Nov  3 21:09 ./d

130567   0 -rw-r--r--   1 root     root            0 Nov  3 21:09 ./f

[root@centos6 test]#     

对比演示: /mode  和  -mode

[root@centos6 test]# find ./ -perm -022 -ls    //属组和其他用户同时有写权限

130566   0 -rwxrwxrwx   1 root     root            0 Nov  3 21:09 ./e

130563   0 -rw-rw-rw-   1 root     root            0 Nov  3 21:09 ./b

[root@centos6 test]# find ./ -perm /022 -ls   //属组和其他用户其中一个用户有写权限即可

130566   0 -rwxrwxrwx   1 root     root            0 Nov  3 21:09 ./e

130565   0 -rwxrwxr-x   1 root     root            0 Nov  3 21:09 ./d

130563   0 -rw-rw-rw-   1 root     root            0 Nov  3 21:09 ./b

[root@centos6 test]#                                                                                                                                                                                                                                                                           

处理动作:

         -print:输出至标准输出,默认的动作;

         -ls:类似于对查找到的文件执行“ls  -l”命令,输出文件的详细信息;

         -delete:删除查找到的文件;

         -fls  /PATH/TO/SOMEFILE:把查找到的所有文件的长格式信息保存至指定的文件中;

         -ok COMMAND  {}  \;  这个书写格式是固定的“-ok  COMMAND {}  \;”意思是                                                                        对查找到的每个文件执行由COMMAND表示的命令;并且                                                                     每次操作都由用户进行确认;

                                                                 命令中的花括号{},表示引用前面的命令查找到的文件的文                                                          件名

         -exec COMMAND {}  \;   表示对查找的每个文件执行由COMMAND表示的命令;每                                                           次操作不需要用户进行确认,直接修改完成;

演示:-ok COMMAND  {}  \;

[root@centos6 test]# useradd tom

[root@centos6 test]# chown tom:tom c e

[root@centos6 test]# ll

total 0

-rw-r-----. 1 root root 0 Nov  3 21:09 a

-rw-rw-rw-. 1 root root 0 Nov  3 21:09 b

-r--r-----.1 tom  tom  0 Nov 3 21:09 c

-rwxrwxr-x. 1 root root 0 Nov  3 21:09 d

-rwxrwxrwx.1 tom  tom  0 Nov 3 21:09 e

-rw-r--r--. 1 root root 0 Nov  3 21:09 f

[root@centos6 test]# userdel tom

[root@centos6 test]# ll

total 0

-rw-r-----. 1 root root 0 Nov  3 21:09 a

-rw-rw-rw-. 1 root root 0 Nov  3 21:09 b

-r--r-----.1  508 508 0 Nov  3 21:09 c

-rwxrwxr-x. 1 root root 0 Nov  3 21:09 d

-rwxrwxrwx.1  508  508 0 Nov 3 21:09 e

-rw-r--r--. 1 root root 0 Nov  3 21:09 f

 [root@centos6test]# find ./ -nouser

./c

./e

[root@centos6 test]# find ./ -nouser -a -nogroup

./c

./e

[root@centos6 test]# find ./ -nouser -a -nogroup -ls

130564   0 -r--r-----   1 508      508             0 Nov  3 21:09 ./c

130566   0 -rwxrwxrwx   1 508      508             0 Nov  3 21:09 ./e

[root@centos6 test]# find ./ -nouser -a -nogroup -ls -okchown root:root {} \;

130564   0 -r--r-----   1 508      508             0 Nov  3 21:09 ./c

< chown ... ./c > ? y

130566   0 -rwxrwxrwx   1 508      508             0 Nov  3 21:09 ./e

< chown ... ./e > ? y

 [root@centos6test]# ll

total 0

-rw-r-----. 1 root root 0 Nov  3 21:09 a

-rw-rw-rw-. 1 root root 0 Nov  3 21:09 b

-r--r-----. 1 root root 0 Nov  3 21:09 c

-rwxrwxr-x. 1 root root 0 Nov  3 21:09 d

-rwxrwxrwx. 1 root root 0 Nov  3 21:09 e

-rw-r--r--. 1 root root 0 Nov  3 21:09 f

[root@centos6 test]#

演示:-exec  COMMAND {}  \;

         一般我们会去找一下文件对于其他用户拥有写权限,这些文件非常危险,我们一般将其         改名,提示用户说这些文件很危险。

[root@centos6 test]# ll

total 0

-rw-r-----. 1 root root 0 Nov  3 21:09 a

-rw-rw-rw-. 1 root root 0 Nov  321:09 b

-r--r-----. 1 root root 0 Nov  3 21:09 c

-rwxrwxr-x. 1 root root 0 Nov  3 21:09 d

-rwxrwxrwx. 1 root root 0 Nov  321:09 e

-rw-r--r--. 1 root root 0 Nov  3 21:09 f

[root@centos6 test]# find ./ -perm /002 -ls -exec mv {}{}.danger \;

130566   0 -rwxrwxrwx   1 root     root            0 Nov  3 21:09 ./e

130563   0 -rw-rw-rw-   1 root     root            0 Nov  3 21:09 ./b

[root@centos6 test]# ll

total 0

-rw-r-----. 1 root root 0 Nov  3 21:09 a

-rw-rw-rw-. 1 root root 0 Nov  321:09 b.danger

-r--r-----. 1 root root 0 Nov  3 21:09 c

-rwxrwxr-x. 1 root root 0 Nov  3 21:09 d

-rwxrwxrwx. 1 root root 0 Nov  321:09 e.danger

-rw-r--r--. 1 root root 0 Nov  3 21:09 f

[root@centos6 test]#

练习:

         1·查找/var目录下属主为root,且属组为mail的所有文件或目录;

         2·查找/usr目录下不属于root,bin,或hadoop的所有文件或目录;(用两种方法)

         3·查找/etc目录下最近一周内其内容修改过,且属主不是root用户也不是hadoop用                        户的文件或目录;

         4·查找/testdir目录下没有属主或属组,且最近一周内曾被访问过的文件或目录;

         5·查找/etc目录下大于1M且类型为普通文件的所有文件;

         6·查找/etc目录下所有用户都没有写权限的文件;

         7·查找/etc目录至少有一类用户没有执行权限的文件;

         8·查找/etc/init.d目录下,所有用户都有执行权限,且其他用户有写权限的所有文件;

解:

         1.分析,题目既然要求是文件或者目录,那么我们就不用区分类型,直接查找即可

                   [root@centos6~]# find /var -user root -a-group mail -ls

394513   4 drwxrwxr-x   2 root     mail         4096 Nov  3 22:12 /var/spool/mail

393675  12 -rw-------   1 root     mail       10500 Nov  3 17:32/var/spool/mail/root

[root@centos6 ~]#

         2.分析,这个题就是让我们找出属主即不是root,也不是bin,也不是hadoop的一个的文件那么就应该这样表示:

         find /usr  -not  -user root  -a  -not -user  bin  -a -not  -user  -hadoop -ls

或:

         find /usr  -not  \( -user  root  -o -user  bin  -o -user  hadoop  \)

         3.分析如果没有符合条件的文件,我们事先,先创建一下符合条件的文件,在进行查找

         find /etc  -mtime  -7 -a  -not  -user root  -a  -not -user  hadoop  -ls

或:

         find /etc  -mtime  -7 -a  -not  \( -user  root  -o -user  hadoop  \)  -ls

         4.分析,如果没有符合条件的文件,我们事先先建立一个这样文件,然后进行查找,我们在先查找没有属主或没有属组的文件时,

[root@centos6 en]# find ./ -nouser -o -nogroup    //当我们不加“-ls”时可以查找出文件

./yes

[root@centos6 en]# find ./ -nouser -o -nogroup  -ls   //当我们只是加上“-ls”时,发现查找                                                                                                不出文件了,这是因为在我们使用逻辑与                                                                                                       时,后面的“-ls”只是对后半部分有效。

                                           所以我们需要将前面的条件加上括号,看                                                                                                                                                         成一个整体,但是在shell命令行中括号                                                                                                          是有特殊意义的,所以我们需要用到转义                                                                                                       符,反斜线“\”,但是这我们需要注意一                                                                                                   下,括号与条件之间前后要有空格,否则                                                                                                  会报错。

[root@centos6 en]#

[root@centos6 en]# find ./ \(-nouser -o -nogroup  \)  -ls    //前面没有空格后面有空格报错

find: invalid expression; you have used abinary operator '-o' with nothing before it.

[root@centos6 en]# find ./ \(  -nouser-o -nogroup\)  -ls   //前面有空格后面没有空格报错

find: unknown predicate `-nogroup)'

[root@centos6 en]# find ./ \(-nouser -o -nogroup\)  -ls  //前后都没有空格报错

find: unknown predicate `-nogroup)'

[root@centos6 en]# find ./ \(  -nouser-o -nogroup  \)  -ls  //前后有空格,正确

391683   0 -rw-r--r--   1 509      509             0 Nov  4 02:09 ./yes

[root@centos6 en]#

所以这个题的答案就是:

         find ./ \(  -nouser -o -nogroup  \)  -atime  -7  -ls

         5.

                   解:

[root@centos6 en]# find /etc -size +1M -a -type f

/etc/GConf/gconf.xml.defaults/%gconf-tree.xml

/etc/selinux/targeted/policy/policy.24

/etc/selinux/targeted/modules/active/policy.kern

或:

[root@centos6 en]# find /etc -size +1M -a -type f -ls

919840 2176 -rw-r--r--   1 root    root      2224540 Oct 11 12:50/etc/gconf/gconf.xml.defaults/%gconf-tree.xml

923559 8228 -rw-r--r--   1 root    root      8424092 Oct 11 13:07/etc/selinux/targeted/policy/policy.24

923264 8228 -rw-r--r--   1 root    root      8424092 Oct 11 13:07

/etc/selinux/targeted/modules/active/policy.kern

或:

[root@centos6 en]# find /etc -size +1M -a -type f  -exec ls -lh {} \;   //换算一下,明确一下是                                                                                                                                         不是大于1M

-rw-r--r--. 1 root root 2.2M Oct 11 12:50/etc/gconf/gconf.xml.defaults/%gconf-tree.xml

-rw-r--r--. 1 root root 8.1M Oct 11 13:07/etc/selinux/targeted/policy/policy.24

-rw-r--r--. 1 root root 8.1M Oct 11 13:07/etc/selinux/targeted/modules/active/policy.kern

[root@centos6 en]#

         6.分析,所有用户都没有写权限,反过来就是至少有一类用户有写权限,“-perm  -222”这表示所有的用户都有写权限,“-perm  /222”这表示至少有一类用户拥有写权限,那么前面加上“-not”就表示所有的用户都没有写权限,所以答案如下:

                   解:

                            find /etc  -not  -perm /222  -ls

         7.分析至少有一类用户没有执行权限,反过来就是所有的用户都有执行权限

                   解:

                            find /etc  -not  -perm -111  -ls

         8.分析所有用户都有执行权限,且其他用户有写权限,都有执行权限表示为“-perm  -111”其他用户有写权限表示为:“-perm  -002”,因为这两者是 “且”的关系,我们将其合并为“-perm  -113”

                   解:

                            find /etc/init.d  -perm  -113 -ls     

等同于:find  /etc/init.d -perm  -111  -a -perm  -002  -ls     

感谢各位的阅读!关于“数据库中文件查找命令怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

您可能感兴趣的文档:

--结束END--

本文标题: 数据库中文件查找命令怎么用

本文链接: https://www.lsjlt.com/news/64751.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 数据库中文件查找命令怎么用
    这篇文章给大家分享的是有关数据库中文件查找命令怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。文件查找:      ...
    99+
    2022-10-18
  • Linux怎么使用locate命令查找数据以及查找指定文件
    这篇文章主要讲解了“Linux怎么使用locate命令查找数据以及查找指定文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux怎么使用locate命令查找数据以及查找指定文件”吧! ...
    99+
    2023-06-13
  • 怎么在Linux中使用命令查找文件
    这篇文章主要介绍怎么在Linux中使用命令查找文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!使用简单的命令在 Linux 下基于类型、内容等快速查找文件。如果你是 Windows 或 OSX 的非资深用户,那么可...
    99+
    2023-06-16
  • linux查找文件命令grep怎么使用
    grep是一种用于在文本文件中查找指定内容的命令。它可以根据用户提供的模式匹配规则,搜索文件中的文本并返回匹配的行。基本用法:1. ...
    99+
    2023-09-25
    linux
  • Ubuntu16.04 中 locate文件查找命令
    查找命令 locate 文件名 示例 ~$ locate glogzryHeaXPcS /home/yqs/.cmake/packages/glog /home/yqs/.cmake/packages/glog/48...
    99+
    2022-06-04
    locate查找文件 ubuntu locate
  • 怎么用Linux的find命令查找文件名
    要使用Linux的find命令来查找文件名,你可以按照以下步骤操作: 打开终端窗口,输入以下命令来使用find命令: find ...
    99+
    2023-10-25
    linux
  • 怎么使用Shell命令查找文件中的内容
    要使用Shell命令查找文件中的内容,可以使用以下命令:1. grep命令:用于在文件中查找指定的内容。例如,要在文件file.tx...
    99+
    2023-10-20
    Shell
  • linux查找文件命令是什么
    linux查找文件命令是find命令、locate命令、grep命令、mlocate命令、which命令。在Linux系统中,查找文件是一项常见的操作。Linux提供了许多命令和选项,可以帮助我们快速而准确地找到我们需要的文件。以下是一些常...
    99+
    2023-07-31
  • linux中有哪些查找文件命令
    linux中有哪些查找文件命令?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。什么是Linux系统Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基...
    99+
    2023-06-15
  • linux中文件查找命令有哪些
    这篇文章主要介绍linux中文件查找命令有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. findfind 命令应该是最经典的命令了,谈到搜索工具第一个想到的肯定是 find 命令。但是,find  ...
    99+
    2023-06-15
  • 怎么在linux中使用find命令根据系统时间查找文件
    本篇文章给大家分享的是有关怎么在linux中使用find命令根据系统时间查找文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。这些时间戳包括mtime  文件内容上次...
    99+
    2023-06-13
  • 怎么在linux中使用du命令查找最大的文件
    怎么在linux中使用du命令查找最大的文件?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。找出在一个path下的最大文件,可以使用du命令:du -sh[dir...
    99+
    2023-06-13
  • 除了find命令,还有这么多文件查找命令!
    文件搜索命令远不止一个 find 命令,还有很多。本文就对 Linux 下文件搜索命令进行一个科普,让你能够在短时间内找到自己需要的文件。在系统里查找文件,是所有工程师都必备的技能(不管你用的是 Windows...
    99+
    2023-06-05
  • 怎么在linux中使用find命令查找比某个文件新的文件
    本篇文章给大家分享的是有关怎么在linux中使用find命令查找比某个文件新的文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。如果希望查找更改时间比某个文件新但比另一个文件旧...
    99+
    2023-06-13
  • linux系统下查找文件whereis命令怎么用
    这篇文章给大家分享的是有关linux系统下查找文件whereis命令怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。指令名称:whereis功能介绍:在特定目录中查找符合条件的文件。这些文...
    99+
    2023-06-10
  • linux查找文件路径的命令是什么
    在Linux中,查找文件路径的命令是`find`。`find`命令的基本语法为:```find ```其中,``是要搜索的目录路径...
    99+
    2023-09-29
    linux
  • Linux下查找文件常用命令有哪些
    这篇文章主要介绍了Linux下查找文件常用命令有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用linux系统难免会忘记文件所在的位置,可以使用以下命令对系统中的文件进...
    99+
    2023-06-27
  • 利用LinuxFind命令快速查找文件方法
    目录一、find 命令基本使用方法二、find 命令进阶用法在茫茫的linux系统种我们如何快速的查找文件呢?对于系统文件基本上是有固定的位置的,但是有些软件安装文件是有自定义位置的...
    99+
    2022-12-08
    Linux Find命令查找文件位置 Linux Find命令查找文件 Linux Find命令用法 Find命令使用
  • linux文件查询命令怎么用
    这篇文章主要介绍了linux文件查询命令怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇linux文件查询命令怎么用文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2023-03-02
    linux
  • linux模糊查找文件用什么命令比较好
    1. 前言 本文主要讲解如何在linux系统下使用命令行工具模糊查找文件,本文的工具包括find命令的用法也介绍grep命令的使用方法,同时也有find与grep两者结合,能更精确根据条件查找文件。 2. 根据文件...
    99+
    2022-06-04
    linux文件名模糊匹配 linux查找文件夹模糊 linux find 模糊查询
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作