TShopping

 找回密碼
 註冊
搜索
查看: 1607|回復: 3

[教學] Linux下find命令詳解

[複製鏈接]
發表於 2012-2-24 14:27:19 | 顯示全部樓層 |閱讀模式
 
Push to Facebook Push to Plurk Push to Twitter 
Linux下find命令在目錄結構中搜索文件,並執行指定的操作。Linux下find命令提供了相當多的查找條件,功能很強大。
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                        #忽略某個目錄
更多信息可以查看:《Linux下find命令詳解》http://www.phpq.net/linux/linux-find.html、《Linux下find命令實例》http://www.phpq.net/linux/linux-find-demo.html
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:'{}
本篇文章來源於 PHP資訊 原文鏈接:http://www.phpq.net/linux/linux-find.html

 

臉書網友討論
發表於 2013-11-10 00:57:28 | 顯示全部樓層
謝謝版主啊!

版主招募中

發表於 2013-11-10 00:57:28 | 顯示全部樓層
哈哈,頂你了哦.  


您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2016-12-7 08:13 , Processed in 0.055876 second(s), 19 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表