中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數據庫中文件查找命令怎么用

發布時間:2021-11-10 15:12:33 來源:億速云 閱讀:259 作者:小新 欄目:數據庫

這篇文章給大家分享的是有關數據庫中文件查找命令怎么用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

文件查找:

         在文件系統上查找符合條件的文件;

                   (文件查找與我們之前學過的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     

感謝各位的閱讀!關于“數據庫中文件查找命令怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沁水县| 临泽县| 古浪县| 翼城县| 拉孜县| 汤原县| 九江市| 墨竹工卡县| 永康市| 西平县| 左云县| 呼玛县| 宿松县| 江阴市| 葫芦岛市| 宣威市| 龙州县| 昌图县| 聊城市| 珲春市| 石泉县| 定南县| 勐海县| 新巴尔虎右旗| 阿鲁科尔沁旗| 开远市| 竹北市| 庄浪县| 临城县| 清河县| 车险| 涞水县| 张家口市| 浑源县| 杂多县| 临湘市| 大田县| 台湾省| 洛南县| 呼伦贝尔市| 体育|