日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Find命令使用详解

發(fā)布時間:2023/11/29 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Find命令使用详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?Find命令使用詳解

FindLinux中查找文件的命令,“find”命令能幫助我們在使用,管理Linux的日常事務中方便的查找出我們需要的文件。

Find?命令的特點:實時精確支持眾多查找標準遍歷指定目錄中的所有文件完成查找,速度慢;

Find?命令的格式:find??查找路徑?查找標準?查找到以后的處理運作

查找路徑:默認為當前目錄

查找標準:默認為指定路徑下的所有文件

處理運作:默認為顯示

Find匹配標準:

? ? ? ?通過文件名查找

????-name?'FILENAME':對文件名作精確匹配

????如:查找/etc目錄下的passwd這樣的文件,命令為:find?/etc?-name?'passwd'??

使用-name對文件名查找的時候還支持對文件名的通配

文件名通配*任意長度的任意字符?”任意單個字符、[]”匹配指定范圍內的任意單個字符,等等

如:查找/etc目錄下以passwd結尾的文件,命令為:find?/etc?-name?'*passwd'?,這樣在/etc目錄下以passwd這幾個字母結尾的所有文件都會被顯示出來

查找/etc目錄下以passwd開頭的文件,命令為:find?/etc?-name?'passwd*'

-iname?'FILENAME':?文件名匹配時不區(qū)分大小寫

-regex?PATTERN:基于正則表達式進行文件名匹配

?

????根據(jù)屬主、屬組查找

-user?USERNAME

如:查找在/tmp目錄下屬主屬于root的用戶,命令為:find?/tmp?-user?root

-group?GROUPNAME

如:查找在/tmp目錄下屬組屬于root的用戶,命令為:find?/tmp?-group?root

?

根據(jù)UIDGID查找

-uid?UID?-gid?GID

如果某個用戶被刪,那么以前所有屬于這個用戶的文件的的屬主都會變成此前這個用戶的ID號,因此這個時候再根據(jù)這個屬主就找不到這樣的文件了,此時只能根據(jù)它的ID號來查找。如:find?/tmp?-uid?2003??這樣就會把ID號為2003的給查找出來。

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

????如:find?/tmp?-nouser???查找/tmp目錄下沒有屬主的用戶

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

如:find?/tmp?-nogroup???查找/tmp目錄下沒有屬組的用戶

?

根據(jù)文件類型來查找:

-type?

f:?普通文件d:?目錄文件b:?塊設備文件?(block)c:?字符設備文件?(character)l:?符號鏈接文件(symbolic?link?file)p:?命令管道文件(pipe)s:?套接字文件(socket)

如:我們查找一下/tmp目錄下的目錄文件,命令為:find?/tmp?-type?d?

????

? ? 根據(jù)文件的大小來查找:

????-size?

通常情況下-size后面都會跟一些數(shù)字和單位如:#k#M#G,如不跟單位默認為字節(jié),這些數(shù)字還可以用+-號來修飾,如:+10k-10k,意思是大于10k、小于10k,如果不帶+-號則表示精確為10k。如果我們查找條件為10k時,那么9k10k之間的都會被默認為10k;如果條件為+10k則表示所有大于10k的文件;如果條件為-10k則表示所有小于10k的文件。格式為:find?/etc?-size?10kfind?/etc?-size?+10k find?/etc?-size?-10k

????

? ? ? ?組合條件:

-a?(與)、-o?(或)、-not(非)

????如:我們找一找/tmp目錄下沒有屬主并且類型為目錄的文件

命令則是?find?/tmp?-nouser?-a?-type?d??這里就用到了-a(與),如果把-a改為-o則表示/tmp目錄下沒有屬主或者類型為目錄的文件,兩個條件滿足一個即可。如果要查找不是目錄的文件只需在前面加-not即可。如:find?/tmp?-not?-type?d??

????根據(jù)文件的時間戳來查找:

-mtime修改時間)、-ctime改變時間)、-atime訪問時間),后面跟數(shù)字,數(shù)字前面還可以用+-號來修飾。如:“-atime?5”表示離此刻為止剛好五天訪問過“-atime?+5”表示至少有五天沒有訪問過了、“-atime?-5”表示五天之內訪問過。還有另外一組(-mmin-cmin-amin)此用法一樣只是表示的時間為分鐘,(‘time’表示天、‘min’表示分鐘)。

如:查找/tmp?目錄下在五天之內被訪問過的文件,即:find?/tmp?-atime?-5???

?

根據(jù)文件的權限來查找:

-perm?MODE

-perm?MODE:精確匹配

-perm?/MODE:?任意一位匹配即滿足條件

????-perm?-MODE:?文件權限能完全包含此MODE時才符合條件

如:我們查找當前目錄下文件權限為644的文件,即:find?./?-perm?644

????運作:

? -print:?顯示

-ls:類似ls?-l的形式顯示每一個文件的詳細

????如果我們想在查找到的文件上執(zhí)行其他的命令則用到下面的命令:

-ok?COMMAND?{}?\;?每一次操作都需要用戶確認,也可以用-exec?COMMAND?{}?\;

????如果我們要操作那個文件,并在這個命令格式中需要引用那個文件的話就要使用{}作為文件名稱占位符。

????在這里強調一點一定要引用“\;”結尾,否則為語法錯誤

如:在當前目錄下找到其他用戶能夠讀寫的用戶,把這些用戶的寫權限給去掉

find?/?-perm?-006?-exec?chmod?o-w?{}?\;??“{}”是引用查找到的文件?

?

下面是幾個練習題:

1、查找/var目錄下屬主為root并且屬組為mail的所有文件;

find?/var?-user?root?-group?mail

2、查找/usr目錄下不屬于root,bin,student的文件;

find?/usr?-not?-user?root?-a?-not?-user?bin?-a?-not?-user?student

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

3、查找/etc目錄下最近一周內內容修改過且不屬于rootstudent用戶的文件;

find?/etc?-mtime?-7?-not?\?(?-user?root?-o?-user?student?\)

find?/etc?-mtime?-7?-not?-user?root?-a?-not?-user?student

4、查找當前系統(tǒng)上沒有屬主或屬組且最近1天內曾被訪問過的文件,并將其屬主屬組均修改為root

find?/?\(?-nouser?-o?-nogroup?\)?-a?-atime?-1?-exec?chown?root:root?{}?\;?

5、查找/etc目錄下大于1M的文件,并將其文件名寫入/tmp/etc.largefiles文件中;

find?/etc?-size?+1M?>>?/tmp/etc.largefiles

6、查找/etc目錄下所有用戶都沒有寫權限的文件,顯示出其詳細信息;

find?/etc?-not?-perm?/222?-ls

轉載于:https://blog.51cto.com/lbxiaoxin/1151428

總結

以上是生活随笔為你收集整理的Find命令使用详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。