最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux中文件的五個查找命令總結

 更新時間:2016年10月04日 14:58:44   作者:子匠_Zijor  
使用電腦的時候,經常需要查找文件,在Linux中,有很多方法可以做到這一點。這篇文章總結了五條命令,你可以看看自己知道幾條。大多數程序員,可能經常使用其中的2到3條,對這5條命令都很熟悉的人應該是不多的。

Linux的查找命令有5個,分別如下:

    which:在PATH變量指定的路徑中,搜索某個系統(tǒng)命令的位置,并且返回第一個搜索結果;

    type:用于區(qū)分某個命令到底是由shell自帶的,還是由shell外部的獨立二進制文件提供的。如果一個命令是外部命令,那么使用-p參數,會顯示該命令的路徑,相當于which命令。type命令其實不能算查找命令;

    whereis:只能用于程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s);

    locate:相當于find -name,可快速查找文件;

    find:最常用和最強大的查找命令,可以用它找到任何想找的文件。

注意:

    通常find不很常用,因為速度慢!

    常都是先使用whereis或者locate來檢查,當真的找不到了,才用find查找。

    是因為whereislocate是利用數據庫來查找數據,所以相當快速,而且沒有實際查詢硬盤,比較節(jié)省時間。

    whereislocate尋找的數據是由已創(chuàng)建的數據 /var/lib/ 中查找。但是數據庫的更新默認是每天更新一次(不同系統(tǒng)可能會有差異),所以當新建文件或刪除文件后去查找該文件,whereislocate會告訴你文件“not found”,因為必須更新數據庫了。

    要手動更新數據庫的方法也很簡單,直接輸入updatedb即可。updatedb命令回去讀取/etc/updatedb.conf中的配置,然后去硬盤里面進行查找文件名操作,最后更新整個數據庫文件。

下面詳細講解以上5個命令的使用:

一、which:查找系統(tǒng)命令位置

which命令在PATH變量指定的路徑中,搜索某個系統(tǒng)命令的位置,并且返回第一個搜索結果。

which命令的格式如下:

which [-a] command

which命令的參數如下:

     -a:將所有由PATH目錄中可以找到的命令均列出來,而不是只列出第一個被找到的命令。

例子:

[root@www ~] # which ifconfig
/sbin/ifconfig

二、whereis:程序名搜索

whereis命令只能用于程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。

whereis命令的格式如下:

whereis [-bmsu] 文件或目錄名

whereis命令的參數如下:

     -b 只查找二進制格式的文件

     -m 只查找在說明文件manual路徑下的文件

     -s 只招source源文件

     -u 查找不在上述三個選項當中的其他特殊文件

例子:

[root@www ~] # whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
[root@www ~] # whereis -m ifconfig
ifconfig: /usr/share/man/man8/ifconfig.8.gz

三、locate:利用數據庫查找文件

locate命令的格式如下:

locate [-ir] keyword

locate命令的參數如下:

    -i:忽略大小寫差異;

    -r:后面可接正則表達式的實現方式。

例如:

[root@www ~] # locate passwd
/etc/passwd
/etc/passwd-
/etc/news/passwd.nntp
/etc/pam.d/passwd

四、find:查找任何文件

find命令的格式如下:

find [PATH] [option] [action]

4.1 find參數:基于文件名的搜索

與文件名有關的參數如下:

   -name filename:查找文件名為filename的文件。filename可使用正則表達式表示。
例子:

[root@www ~] # find / -name passwd

查找文件名為passwd的文件。

4.2 find參數:基于文件大小的搜索

與文件大小有關的參數如下:

     -size SIZE:查找文件大小剛好等于SIZE的文件;

     -size -SIZE:查找文件大小大于SIZE的文件;

     -size +SIZE:查找文件大小小于SIZE的文件。

其中,SIZE的單位有:

     c —— byte,字節(jié);

     w —— 字(2字節(jié));

     b —— bit,塊(512字節(jié));

     k —— 千字節(jié);

     M —— 兆字節(jié);

     G —— 吉字節(jié)。

例子:

[root@www ~] # find . -type f -size +10k
搜索大于10KB的文件
[root@www ~] # find . -type f -size 10k
搜索等于10KB的文件

4.3 find參數:基于文件類型的搜索

與文件類型有關的參數如下:

     -type TYPE:查找文件的類型為TYPE的文件。

TYPE的參數列表有:

     f :普通文件;

     l :符號連接;

     d :目錄;

     c :字符設備;

     b :塊設備;

     s :套接字;

     p :FIFO。

例子:

[root@www ~] # find /var -type s

查找/var目錄下所有類型為socket的文件。

4.4 find參數:基于目錄深度的搜索

與目錄深度有關的參數如下:

    -maxdepth n:n為數字,表示向下最大深度限制為n;

    -mindepth n:n為數字,搜索出深度距離當前目錄至少n個子目錄的所有文件。

例子:

[root@www ~] # find . -maxdepth 3 -type f
向下最大深度限制為3
[root@www ~] # find . -mindepth 2 -type f
搜索出深度距離當前目錄至少2個子目錄的所有文件

4.5 find參數:基于時間進行搜索

與時間有關的參數共有 -atime、-ctime、-mtime。下面以 -mtime 說明:

     -mtime n: n為數字,列出在n天之前的“一天之內”被更改過的文件名;

     -mtime +n:列出在n天之前(不含第n天本身)被更改過的文件名;

     -mtime -n:列出在n天之內(不含第n天本身)被更改過的文件名;

     -newer file:file為一個存在的文件,列出比file還要新的文件名。

例子:

[root@www ~] # find /etc -mtime 0
查找從現在開始到24小時前,/etc目錄下所有改動過內容的文件都會被列出來。
[root@www ~] # find /ect -newer /etc/passwd
查找/etc目錄下,所有比/etc/passwd文件更新的文件。

4.6 find參數:基于用戶或用戶組名進行搜索

與用戶或用戶組名有關的參數如下:

     -uid n:n為數字,表示用戶的UID;

     -gid n:n為數字,表示用戶的GID;

     -user name:name為用戶賬號名稱;

     -group name:name為用戶組名;

     -nouser:尋找文件的所有者不存在于/etc/passwd的文件;

     -nogroup:尋找文件的所有用戶組不存在于/etc/group的文件。

例子:

[root@www ~] # find /home -user root

查找root用戶在/home目錄下的所有文件。

4.7 find參數:基于文件權限進行搜索

與文件權限有關的參數如下:

     -perm mode:查找文件權限剛好等于mode的文件;

     -perm +mode:查找文件權限“包含任一mode的權限”的文件;

     -perm -mode:查找文件權限“必須要全部包括mode的權限”的文件。

例子:

[root@www ~] # find / -perm +7000

查找必須含有---s--s--t的所有三個權限的文件。

4.8 find命令的其它一些技巧

4.8.1 查找所有長度為零的文件:

find . -empty

4.8.2 查找在n分鐘內被修改的文件:

find . -cmin -60

查找一個小時內文件狀態(tài)改變的文件(也就是60分鐘內)。

4.8.3 僅僅查找非隱藏的文件(不顯示隱藏文件):

find . \( ! -regex ".*/\..*" \)

顯示當前目錄及其子目錄下的文件,并且只列出非隱藏文件。

五、type:顯示指定命令的類型

type命令用來顯示指定命令的類型,判斷給出的指令是內部指令還是外部指令。

type命令格式如下:

 type [option] [commond]

type命令的參數有:

     -t:輸出“file”、“alias”或者“builtin”,分別表示給定的指令為“外部指令”、“命令別名”或者“內部指令”;

     -p:如果給出的指令為外部指令,則顯示其絕對路徑;

     -a:在環(huán)境變量“PATH”指定的路徑中,顯示給定指令的信息,包括命令別名。

命令的類型可能有如下幾種:

     alias: 別名;

     keyword: 關鍵字,Shell保留字;

     function: 函數,Shell函數;

     builtin: 內建命令,Shell內建命令;

     file: 文件,磁盤文件,外部命令;

     unfound: 沒有找到。

例子:

[root@www ~] # type cd
cd is a shell builtin
[root@www ~] # type date 
date is /bin/date 
[root@www ~] # type mysql
mysql is /usr/bin/mysql
[root@www ~] # type nginx
-bash: type: nginx: not found
[root@www ~] # type if
if is a shell keyword

總結

以上就是這篇文章的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

相關文章

最新評論

农安县| 温宿县| 兰考县| 三都| 长丰县| 南乐县| 江川县| 安丘市| 始兴县| 尼木县| 平安县| 安国市| 庆阳市| 安西县| 怀化市| 合山市| 孟州市| 甘南县| 建瓯市| 巴林左旗| 射阳县| 阿拉善盟| 沁源县| 峨山| 富源县| 榕江县| 南靖县| 嘉义市| 灵台县| 临清市| 宁德市| 喀什市| 讷河市| 永修县| 荣昌县| 锦州市| 湖南省| 崇礼县| 错那县| 司法| 廉江市|