亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

Linux下find查找命令用法

添加時間:2016-7-27 21:35:14  添加: 思海網絡 
Linux下find命令在目錄結構中搜索文件,并執行指定的操作。Linux下find命令提供了相當多的查找條件,功能很強大。由于find具有強大的功能,所以它的選項也很多,其中大部分選項都值得我們花時間來了解一下。即使系統中含有網絡文件系統( NFS),find命令在該文件系統中同樣有效,只你具有相應的權限。 在運行一個非常消耗資源的find命令時,很多人都傾向于把它放在后臺執行,因為遍歷一個大的文件系統可能會花費很長的時間(這里是指30G字節以上的文件系統)。

1.命令格式:

find pathname -options [-print -exec -ok ...]

2.命令功能:

用于在文件樹種查找文件,并作出相應的處理 

3.命令參數:

pathname: find命令所查找的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。 
-print: find命令將匹配的文件輸出到標準輸出。 
-exec: find命令對匹配的文件執行該參數所給出的shell命令。相應命令的形式為'command' {  } \;,注意{   }和\;之間的空格。 
-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執行該參數所給出的shell命令,在執行每一個命令之前,都會給出提示,讓用戶來確定是否執行。

4.命令選項:

-name   按照文件名查找文件。
-perm   按照文件權限來查找文件。
-prune  使用這一選項可以使find命令不在當前指定的目錄中查找,如果同時使用-depth選項,那么-prune將被find命令忽略。
-user   按照文件屬主來查找文件。
-group  按照文件所屬的組來查找文件。
-mtime -n +n  按照文件的更改時間來查找文件, - n表示文件更改時間距現在n天以內,+ n表示文件更改時間距現在n天以前。find命令還有-atime和-ctime 選項,但它們都和-m time選項。
-nogroup  查找無有效所屬組的文件,即該文件所屬的組在/etc/groups中不存在。
-nouser   查找無有效屬主的文件,即該文件的屬主在/etc/passwd中不存在。
-newer file1 ! file2  查找更改時間比文件file1新但比文件file2舊的文件。
-type  查找某一類型的文件,諸如:
b - 塊設備文件。
d - 目錄。
c - 字符設備文件。
p - 管道文件。
l - 符號鏈接文件。
f - 普通文件。
-size n:[c] 查找文件長度為n塊的文件,帶有c時表示文件長度以字節計。-depth:在查找文件時,首先查找當前目錄中的文件,然后再在其子目錄中查找。
-fstype:查找位于某一類型文件系統中的文件,這些文件系統類型通常可以在配置文件/etc/fstab中找到,該配置文件中包含了本系統中有關文件系統的信息。
-mount:在查找文件時不跨越文件系統mount點。
-follow:如果find命令遇到符號鏈接文件,就跟蹤至鏈接所指向的文件。
-cpio:對匹配的文件使用cpio命令,將這些文件備份到磁帶設備中。

另外,下面三個的區別:

-amin n   查找系統中最后N分鐘訪問的文件
-atime n  查找系統中最后n*24小時訪問的文件
-cmin n   查找系統中最后N分鐘被改變文件狀態的文件
-ctime n  查找系統中最后n*24小時被改變文件狀態的文件
-mmin n   查找系統中最后N分鐘被改變文件數據的文件
-mtime n  查找系統中最后n*24小時被改變文件數據的文件

5.使用實例:

實例1:查找指定時間內修改過的文件 

命令:
           find -atime -2

輸出:




代碼如下:
[root@peidachang ~]# find -atime -2
.
./logs/monitor
./.bashrc
./.bash_profile
./.bash_history

說明:

超找48小時內修改過的文件 

實例2:根據關鍵字查找 

命令:

find . -name "*.log"

輸出:




代碼如下:
[root@localhost test]# find . -name "*.log" 
./log_link.log
./log2014.log
./test4/log3-2.log
./test4/log3-3.log
./test4/log3-1.log
./log2013.log
./log2012.log
./log.log
./test5/log5-2.log
./test5/log5-3.log
./test5/log.log
./test5/log5-1.log
./test5/test3/log3-2.log
./test5/test3/log3-3.log
./test5/test3/log3-1.log
./test3/log3-2.log
./test3/log3-3.log
./test3/log3-1.log

說明:

在當前目錄查找 以.log結尾的文件。 ". "代表當前目錄 

實例3:按照目錄或文件的權限來查找文件

命令:

find /opt/soft/test/ -perm 777

輸出:




代碼如下:
[root@localhost test]# find /opt/soft/test/ -perm 777
/opt/soft/test/log_link.log
/opt/soft/test/test4
/opt/soft/test/test5/test3
/opt/soft/test/test3

說明: 

查找/opt/soft/test/目錄下 權限為 777的文件

實例4:按類型查找 

命令:

find . -type f -name "*.log"

輸出:




代碼如下:
[root@localhost test]# find . -type f -name "*.log"
./log2014.log
./test4/log3-2.log
./test4/log3-3.log
./test4/log3-1.log
./log2013.log
./log2012.log
./log.log
./test5/log5-2.log
./test5/log5-3.log
./test5/log.log
./test5/log5-1.log
./test5/test3/log3-2.log
./test5/test3/log3-3.log
./test5/test3/log3-1.log
./test3/log3-2.log
./test3/log3-3.log
./test3/log3-1.log
[root@localhost test]#

說明:

查找當目錄,以.log結尾的普通文件 

實例5:查找當前所有目錄并排序

命令:

find . -type d | sort

輸出:




代碼如下:
[root@localhost test]# find . -type d | sort
.
./scf
./scf/bin
./scf/doc
./scf/lib
./scf/service
./scf/service/deploy
./scf/service/deploy/info
./scf/service/deploy/product
./test3
./test4
./test5
./test5/test3
[root@localhost test]#

實例6:按大小查找文件

命令:

find . -size +1000c -print

輸出:




代碼如下:
[root@localhost test]# find . -size +1000c -print
.
./test4
./scf
./scf/lib
./scf/service
./scf/service/deploy
./scf/service/deploy/product
./scf/service/deploy/info
./scf/doc
./scf/bin
./log2012.log
./test5
./test5/test3
./test3
[root@localhost test]#

說明:

查找當前目錄大于1K的文件 

一、Linux中find常見用法示例
·find    path    -option    [    -print ]    [ -exec    -ok    command ]    {} \;
#-print 將查找到的文件輸出到標準輸出
#-exec    command    {} \;       -----將查到的文件執行command操作,{} 和 \;之間有空格
#-ok 和-exec相同,只不過在操作前要詢用戶 ==================================================== -name    filename               #查找名為filename的文件
-perm                         #按執行權限來查找
-user     username              #按文件屬主來查找
-group groupname              #按組來查找
-mtime    -n +n                 #按文件更改時間來查找文件,-n指n天以內,+n指n天以前
-atime     -n +n                #按文件訪問時間來查GIN: 0px">-perm                          #按執行權限來查找
-user     username              #按文件屬主來查找
-group groupname              #按組來查找
-mtime    -n +n                 #按文件更改時間來查找文件,-n指n天以內,+n指n天以前
-atime     -n +n                #按文件訪問時間來查找文件,-n指n天以內,+n指n天以前 
-ctime     -n +n                #按文件創建時間來查找文件,-n指n天以內,+n指n天以前 
-nogroup                      #查無有效屬組的文件,即文件的屬組在/etc/groups中不存在
-nouser                       #查無有效屬主的文件,即文件的屬主在/etc/passwd中不存
-newer    f1 !f2                找文件,-n指n天以內,+n指n天以前 
-ctime     -n +n                #按文件創建時間來查找文件,-n指n天以內,+n指n天以前 
-nogroup                      #查無有效屬組的文件,即文件的屬組在/etc/groups中不存在
-nouser                       #查無有效屬主的文件,即文件的屬主在/etc/passwd中不存
-newer    f1 !f2                #查更改時間比f1新但比f2舊的文件
-type      b/d/c/p/l/f          #查是塊設備、目錄、字符設備、管道、符號鏈接、普通文件
-size       n[c]                #查長度為n塊[或n字節]的文件
-depth                        #使查找在進入子目錄前先行查找完本目錄
-fstype                       #查更改時間比f1新但比f2舊的文件
-mount                        #查文件時不跨越文件系統mount點
-follow                       #如果遇到符號鏈接文件,就跟蹤鏈接所指的文件
-cpio                         #對匹配的文件使用cpio命令,將他們備份到磁帶設備中
-prune                        #忽略某個目錄 ====================================================
$find    ~    -name    "*.txt"    -print      #在$HOME中查.txt文件并顯示
$find    .     -name    "*.txt"    -print
$find    .     -name    "[A-Z]*"    -pri26nbsp;     #對匹配的文件使用cpio命令,將他們備份到磁帶設備中
-prune                                #忽略某個目錄 $find    .     -name    "[A-Z]*"    -print    #查以大寫字母開頭的文件
$find    /etc    -name    "host*"    -print #查以host開頭的文件
$find    .    -name    "[a-z][a-z][0--9][0--9].txt"     -print    #查以兩個小寫字母和兩個數字開頭的txt文件
$find .    -perm    755    -print
$find    .    -perm -007    -exec ls -l {} \;    #查所有用戶都可讀寫執行的文件同-perm 777
$find    . -type d    -print   打印目錄結構
$find    .   !    -type    d    -print  打印非目錄文件 find /usr/include -name '*.h' -exec grep AF_INEF6 {} \; 因grep無法遞歸搜索子目錄,故可以和find相結合使用。 在/usr/include 所有子目錄中的.h文件中找字串AF_INEF6
$find    .    -type l    -print $find    .    -size    +1000000c    -print         #查長度大于1Mb的文件
$find    .    -size    100c          -print        # 查長度為100c的文件
$find    .    -size    +10    -print               #查長度超過期作廢10塊的文件(1塊=512字節) $cd /
$find    etc    home    apps     -depth    -print    | cpio    -ivcdC65536    -o    /dev/rmt0
$find    /etc -name "passwd*"    -exec grep    "cnscn"    {}    \;    #看是否存在cnscn用戶
$find . -name "yao*"    | xargs file
$find    . -name "yao*"    |    xargs    echo     "" > /tmp/core.log
$find    . -name "yao*"    | xargs    chmod    o-w ====================================================== find    -name april*                        在當前目錄下查找以april開始的文件
find    -name    april*    fprint file          在當前目錄下查找以april開始的文件,并把結果輸出到file中
find    -name ap* -o -name may*    查找以ap或may開頭的文件
find    /mnt    -name tom.txt    -ftype vfat    在/mnt下查找名稱為tom.txt且文件系統類型為vfat的文件
find    /mnt    -name t.txt ! -ftype vfat     在/mnt下查找名稱為tom.txt且文件系統類型不為vfat的文件
find    /tmp    -name wa* -type l             在/tmp下查找名為wa開頭且類型為符號鏈接的文件
find    /home    -mtime    -2                   在/home下查最近兩天內改動過的文件
find /home     -atime -1                    查1天之內被存取過的文件
find /home -mmin     +60                    在/home下查60分鐘前改動過的文件
find /home    -amin    +30                    查最近30分鐘前被存取過的文件
find /home    -newer    tmp.txt               在/home下查更新時間比tmp.txt近的文件或目錄
find /home    -anewer    tmp.txt              在/home下查存取時間比tmp.txt近的文件或目錄
find    /home    -used    -2                    列出文件或目錄被改動過之后,在2日內被存取過的文件或目錄
find    /home    -user cnscn                  列出/home目錄內屬于用戶cnscn的文件或目錄
find    /home    -uid    +501                   列出/home目錄內用戶的識別碼大于501的文件或目錄
find    /home    -group    cnscn                列出/home內組為cnscn的文件或目錄
find    /home    -gid 501                     列出/home內組id為501的文件或目錄
find    /home    -nouser                      列出/home內不屬于本地用戶的文件或目錄
find    /home    -nogroup                     列出/home內不屬于本地組的文件或目錄
find    /home     -name tmp.txt     -maxdepth    4    列出/home內的tmp.txt 查時深度最多為3層
find    /home    -name tmp.txt    -mindepth    3    從第2層開始查
find    /home    -empty                       查找大小為0的文件或空目錄
find    /home    -size    +512k                 查大于512k的文件
find    /home    -size    -512k                 查小于512k的文件
find    /home    -links    +2                   查硬連接數大于2的文件或目錄
find    /home    -perm    0700                  查權限為700的文件或目錄
find    /tmp    -name tmp.txt    -exec cat {} \;
find    /tmp    -name    tmp.txt    -ok    rm {} \; find     /    -amin     -10         # 查找在系統中最后10分鐘訪問的文件
find     /    -atime    -2           # 查找在系統中最后48小時訪問的文件
find     /    -empty                # 查找在系統中為空的文件或者文件夾
find     /    -group    cat          # 查找在系統中屬于 groupcat的文件
find     /    -mmin    -5           # 查找在系統中最后5分鐘里修改過的文件
find     /    -mtime    -1          #查找在系統中最后24小時里修改過的文件
find     /    -nouser               #查找在系統中屬于作廢用戶的文件
find     /    -user     fred         #查找在系統中屬于FRED這個用戶的文件

查當前目錄下的所有普通文件 
-------------------------------------------------------------------------------- # find . -type f -exec ls -l {} \; 
-rw-r--r--      1 root       root          34928 2003-02-25    ./conf/httpd.conf 
-rw-r--r--      1 root       root          12959 2003-02-25    ./conf/magic 
-rw-r--r--      1 root       root            180 2003-02-25    ./conf.d/README 
查當前目錄下的所有普通文件,并在- e x e c選項中使用ls -l命令將它們列出 
=================================================
在/ l o g s目錄中查找更改時間在5日以前的文件并刪除它們:
$ find logs -type f -mtime +5 -exec    -ok    rm {} \; 
=================================================
查詢當天修改過的文件
[root@book class]# find    ./    -mtime    -1    -type f    -exec    ls -l    {} \; 
=================================================
查詢文件并詢問是否要顯示
[root@book class]# find    ./    -mtime    -1    -type f    -ok    ls -l    {} \;  
< ls ... ./classDB.inc.php > ? y
-rw-r--r--      1 cnscn      cnscn         13709    1月 12 12:22 ./classDB.inc.php
[root@book class]# find    ./    -mtime    -1    -type f    -ok    ls -l    {} \;  
< ls ... ./classDB.inc.php > ? n
[root@book class]# =================================================
查詢并交給awk去處理
[root@book class]# who    |    awk    '{print $1"\t"$2}'
cnscn     pts/0 =================================================
awk---grep---sed [root@book class]# df    -k |    awk '{print $1}' |    grep    -v    'none' |    sed    s"/\/dev\///g"
文件系統
sda2
sda1
[root@book class]# df    -k |    awk '{print $1}' |    grep    -v    'none'
文件系統
/dev/sda2
/dev/sda1


1)在/tmp中查找所有的*.h,并在這些文件中查找“SYSCALL_VECTOR",最后打印出所有包含"SYSCALL_VECTOR"的文件名 A) find    /tmp    -name    "*.h"    | xargs    -n50    grep SYSCALL_VECTOR
B) grep    SYSCALL_VECTOR    /tmp/*.h | cut     -d':'    -f1| uniq > filename
C) find    /tmp    -name "*.h"    -exec grep "SYSCALL_VECTOR"    {}    \; -print 
2)find / -name filename -exec rm -rf {} \;
     find / -name filename -ok rm -rf {} \; 
3)比如要查找磁盤中大于3M的文件:
find . -size +3000k -exec ls -ld {} ; 
4)將find出來的東西拷到另一個地方
find *.c -exec cp '{}' /tmp ';' 如果有特殊文件,可以用cpio,也可以用這樣的語法:
find dir -name filename -print | cpio -pdv newdir 
6)查找2004-11-30 16:36:37時更改過的文件
# A=`find ./ -name "*php"` |    ls -l --full-time $A 2>/dev/null | grep "2004-11-30 16:36:37 
二、linux下find命令的用法
1. 基本用法:
      find / -name 文件名      find ver1.d ver2.d -name '*.c' -print    查找ver1.d,ver2.d *.c文件并打印      find . -type d -print 從當前目錄查找,僅查找目錄,找到后,打印路徑名。可用于打印目錄結構。
2. 無錯誤查找:
      find / -name access_log 2 >/dev/null
3. 按尺寸查找:
      find / -size 1500c (查找1,500字節大小的文件,c表示字節)
      find / -size +1500c (查找大于1,500字節大小的文件,+表示大于)    
      find / -size +1500c (查找小于1,500字節大小的文件,-表示小于)    
4. 按時間:
      find / -amin n 最后n分鐘 
      find / -atime n 最后n天
      find / -cmin n 最后n分鐘改變狀態
      find / -ctime n 最后n天改變狀態
5. 其它:
      find / -empty 空白文件、空白文件夾、沒有子目錄的文件夾
      find / -false 查找系統中總是錯誤的文件
      find / -fstype type 找存在于指定文件系統的文件,如type為ext2
      find / -gid n 組id為n的文件
      find / -group gname 組名為gname的文件
      find / -depth n 在某層指定目錄中優先查找文件內容
      find / -maxdepth levels 在某個層次目錄中按遞減方式查找
6. 邏輯
      -and 條件與 -or 條件或
7. 查找字符串
      find . -name '*.html' -exec grep 'mailto:'{} 


關鍵字:Linux、find命令、文件系統
分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站