亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

Linux文件查找工具find全解讀

時(shí)間:2024-08-14 22:53:35 Linux認(rèn)證 我要投稿
  • 相關(guān)推薦

Linux文件查找工具find全解讀

  一、文件查找工具常用軟件

  locate:

  locate命令其實(shí)是find -name的另一種寫法,但是要比后者快得多,原因在于它不搜索具體目錄,而是搜索一個(gè)數(shù)據(jù)庫(kù)/var/lib/locatedb,這個(gè)數(shù)據(jù)庫(kù)中含有本地所有文件信息。Linux系統(tǒng)自動(dòng)創(chuàng)建這個(gè)數(shù)據(jù)庫(kù),并且每天自動(dòng)更新一次,所以使用locate命令查不到最新變動(dòng)過的文件。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動(dòng)更新數(shù)據(jù)庫(kù)。

  find:

  find命令用來在指定目錄下查找文件,通過遍歷指定的目標(biāo)目錄,實(shí)時(shí)查找符合指定屬性的文件?梢越Y(jié)合正則表達(dá)式(REGular EXPressio)來匹配模式。

  二、軟件常用參數(shù)及使用方式

  locate:

  使用格式:locate [OPTION]… PATTERN…

  常用參數(shù):

  -i:忽略大小寫

  實(shí)例:

  過濾/etc/下以sh開頭的文件

  # locate /etc/sh

  /etc/shadow

  /etc/shadow-

  /etc/shells

  find:

  find [OPTIONS] [查找路徑] [查找條件] [處理動(dòng)作]

  查找路徑:默認(rèn)為當(dāng)前路徑;

  查找條件:默認(rèn)為指定路徑下的所有文件;

  處理動(dòng)作:默認(rèn)為打印至屏幕;

  1、查找路徑

  默認(rèn)為當(dāng)前路徑,可以指定系統(tǒng)內(nèi)的任意路徑,但不建議使用/

  2、查找條件

  (1)基本查找條件

  a、用戶、用戶組及文件名查找

  -name “文件名”:文件名支持使用globbing

  glob:文件名通配;快速引用多個(gè)文件;文件名整體匹配度檢測(cè);

  元字符:基于元字符可編寫匹配模式(pattern);

  *:匹配任意長(zhǎng)度的任意字符;

  ?:匹配任意單個(gè)字符;

  [ ]:匹配指定集合內(nèi)的任意單個(gè)字符;

  [a-z], [A-Z]:不區(qū)分字符大小寫;

  [0-9]

  [a-z0-9]

  [[:upper:]]:所有大寫字母;

  [[:lower:]]:所有小寫字母;

  [[:digit:]]:所有的數(shù)字;

  [[:alpha:]]:所有字母;

  [[:alnum:]]:所有字母和數(shù)字;

  [[:space:]]:空白字符;

  [[:punct:]]:標(biāo)點(diǎn)符號(hào);

  [^ ]:匹配指定集合外的任意單個(gè)字符;

  實(shí)例:

  # find /etc -name "passwd*"

  -iname “文件名” 不區(qū)分大小寫

  實(shí)例:

  # find /tmp -iname "*yum*"

  /tmp/yum.log

  /tmp/YUM.LOG

  # find /tmp -name "*yum*"

  /tmp/yum.log

  -user USERNAME:根據(jù)屬主查找

  -group USERNAME:根據(jù)屬組查找

  實(shí)例:

  # find /var -user root -o -group mail

  -uid UID:根據(jù)指定UID查找

  -gid GID:根據(jù)指定GID查找

  實(shí)例:

  # find /tmp -uid 3323 -ls

  2346806 0 -rw-rw-r-- 1 mageedu mageedu 0 Mar 10 09:36 /tmp/mageedu

  2346812 0 -rw-rw-r-- 1 mageedu mageedu 0 Mar 10 09:36 /tmp/testfile

  -nouser:查找沒有屬主的文件

  -nogroup:查找沒有屬組的文件需

  -nouser與-nogroup參數(shù)主要用在當(dāng)公司員工離職后,雖然賬戶刪除,但是他所有權(quán)限的文件還存在,并且以UID的形式來標(biāo)識(shí)屬主與屬組,既當(dāng)有uid有這個(gè)用戶相同時(shí)就會(huì)可以查看此文件,所以需要?jiǎng)h除此類文件。

  實(shí)例:

  # find /tmp -nouser -nogroup -ls

  2346806 0 -rw-rw-r-- 1 3323 3323 0 Mar 10 09:36 /tmp/mageedu

  2346812 0 -rw-rw-r-- 1 3323 3323 0 Mar 10 09:36 /tmp/testfile

  b、文件類型查找

  -type TYPE: 根據(jù)文件類型查找

  f: 普通文件

  d: 目錄文件

  l: 符號(hào)鏈接文件

  b: 塊設(shè)備

  c: 字符設(shè)備文件

  p: 命令名管道文件

  s: 套接字文

  實(shí)例:

  # find /tmp -type d -ls

  c、文件大小

  -size [+|-]#UNIT:

  常用單位有:k, M, G

  #UNIT: #-1

  2k指1k-2k

  -#UNIT:x

  -2k:指0k-1k

  +#UNIT: x > #

  +2k:指2k到正無窮

  實(shí)例:

  # find /etc/ -type f -size +1

  d、時(shí)間戳查找

  以“天”為單位

  -atime [+|-]#

  -mtime [+|-]#

  -ctime [+|-]#

  #: 例如:今天為3月10日,3就是3月7日到3月8日(注意天是24小時(shí)制)

  -#: 例如:今天為3月10日,-3就是三天內(nèi)指,3月7日的現(xiàn)在時(shí)間到現(xiàn)在的時(shí)間。

  +#: 例如:今天為3月10日,+3就是三天前之前指,3月7日前

  以“分鐘”為單位

  -amin [+|-]#

  -mmin

  -cmin

  實(shí)例:

  # find /etc -not -user root -not -user hadoop -mtime -7

  # find / -nouser -nogroup -atime -3

  e、權(quán)限查找

  根據(jù)權(quán)限查找:

  -perm [+|-]MODE

  MODE: 與MODE精確匹配

  +MODE:任何一類用戶的權(quán)限只要能包含對(duì)其指定的任何一位權(quán)限即可;

  -MODE:每一類用戶的權(quán)限都包含對(duì)其指定的所有權(quán)限;

  #這里是指包含,例如:-444 指在屬主、屬組、其他用戶中只要包含讀權(quán)限就可以。

  實(shí)例:

  # find /etc/init.d/ -perm -113 #此處指所有用戶都有執(zhí)行權(quán)限,其他用戶有寫權(quán)限的文件或目錄

  # find /etc/ -type f -not -perm +222 #此處指所有用戶都沒有寫權(quán)限

  (2)組合查找條件

  組合查找條件:

  與:-a, 查找條件1 -a 查找條件2 -a …

  所有條件必須同時(shí)滿足

  或:-o, 查找條件1 -o 查找條件2 -o …

  滿足其中一個(gè)條件即可

  非:-not, !

  -not 查找條件

  實(shí)例:

  # find / ( -nouser -o -nogroup ) -a -atime -3

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

  3、處理動(dòng)作

  -print: 默認(rèn)動(dòng)作,打印至屏幕;

  -ls: 顯示找到的文件的詳細(xì)屬性;

  -exec COMMAND {} ;

  -ok COMMAND {} ;

  #exec與ok的區(qū)別:ok會(huì)提供交互式,讓你確認(rèn)。而exec則不需要;

  實(shí)例:

  # find /tmp -iname "*yum*" -type f -ls

  134 0 -rw-r--r-- 1 root root 0 Mar 10 09:32 /tmp/yum.log

  137 0 -rw-r--r-- 1 root root 0 Mar 10 09:32 /tmp/YUM.LOG

  # find /tmp -iname "*yum*" -type f -exec ls -l {} ;

  -rw-r--r-- 1 root root 0 Mar 10 09:32 /tmp/yum.log

  -rw-r--r-- 1 root root 0 Mar 10 09:32 /tmp/YUM.LOG

  # find /tmp -iname "*yum*" -type f -exec echo {} >>/tmp/test.file ;

  # find /tmp -iname "*yum*" -type f -ok echo {} >>/tmp/test.file \;

  ? y

  ? y

【Linux文件查找工具find全解讀】相關(guān)文章:

Linux文件查找命令find和xargs詳解09-29

Linux文件系統(tǒng)簡(jiǎn)介06-01

Linux下程序的Profile工具01-24

Linux忽略大小寫查找技巧08-12

常用的Linux網(wǎng)絡(luò)工具08-02

linux下etc/fstab文件的簡(jiǎn)介10-23

Linux btrfs文件系統(tǒng)及管理07-31

Linux概念架構(gòu)解讀201610-15

Linux文件系統(tǒng)操作命令大全07-03

Linux中的more命令解讀202405-06