FreeBSD Find地介紹-windos,2000,XP,2003,QQ ,word,excel,迅雷,pplive,暴风影音 .BT.千千静听等软件实用技巧| 学知识教程网,
设为首页|收藏学知识 |改版意见收集|智能DIY搜索|加入我们|网站地图
当前在线人数:8770
文化共享 好教程 易学习 新资讯
FreeBSD入门技巧

FreeBSD Find地介紹

2007-01-19 源自:学知识 网友评论 共有( )条评论! 内容报错
本文章地址:http://soft.xuezhishi.net/OS/FreeBSD/rmjq/2007-01-20/17203.html [将本信息与朋友分享!]

                     


find 其實是一個很有用的工具,且常用的工具。◎find - walk a file hierarchy            在一個檔案等級制度中遊走 顧名思義 也就是搜尋◎語法: find  path  operators                path:路徑  operators:/算子(參數)           ◎operators: 常用的參數如下 (若有疑義請參閱man page 為準               ★號表示重要...        1. -atime n: 用檔案存取時間(access)為搜尋條件,n 為數字代表週期,                     單位是24小時。                              ★註解:     n不帶正負時,表示距今從目前這個週期到下個週期為止                      n為負號時(-),表示距今這個週期之前。                     n為正號時(+),表示距今大於這個週期的時間。                                          舉例說明:                     若n為3(不帶正負號),表示距今72~96小時。                     若n為-3(帶負號),表示距今0~72小時內。                      若n為+3(帶正號),表示距今超過72小時,也就是>72小時。              2.-mtime n: 用檔案修改時間(modification)為搜尋條件,n以24小時為週期。              3.-ctime n: 用檔案inode更動時間為條件,n以24小時為週期。              4.-inum  n: 用inode值來作為搜尋條件,n為該檔案的inode值。                     5.-name  filename:後接檔案名稱,若包含"萬用字元",則要括起來,                           避免shell解讀之。       6.-perm mode: 以存取權限為搜尋條件。                       7.-user name: 以檔案的所有者為搜尋條件,用uid也可。              8.-group name: 以檔案的群組為搜尋條件,用gid亦可。       註:7.8 find會先用name搜尋,若找不到才試著用uid或gid搜尋              9.-type t: t的代表的是檔案的類型,類型常用的如下:                     d   -->  資料夾                     f   -->  一般檔案                     l   -->  符號連結檔                           10.-size n: n表示區塊數,通常是512-byte bolck,                 若n後接c (nc) 表示為n bytes。                      ★11.operator1 -a operator2: -a 等同於邏輯上的 AND            operator1 -o operator2: -o 等同於邏輯上的 OR          ! operator1 : ! 等同於邏輯上的 NOT                  註:operator1 -a operator2 與operator1 operator2            是相同的...同樣代表當/算子1成立且/算子2成立                 ★12./( expression /): 在複雜的情況下,括號表示先/算。              加上反斜線/ 為的是不要讓shell誤判。                                    13.-print: 將搜尋結果送到標準輸出stdout,一般來說也就是螢幕。               註:最常用到 但也常被遺忘的參數。                                   ★14.-exec command: 表示將搜尋的結果,再導入某一命令。               註:搜尋出的結果可用兩個大括號{} 替代,命令後接 /; 表示結束。                        ex:將目前目錄 搜尋出檔案以.o結尾的檔案 刪除!!               find . -name "*.o" -exec rm -f {} /;                                        ★15.-maxdepth n: n 表示搜尋的深度。1表示目前這個資料夾。        ★16.-ok command: -ok跟-exec相同,不過執行前會詢問。通常用來測試。        ★17.-newer file: 比file修改(modification)的時間更早為搜尋條件    ◎實例應用:      1.修改時間: 假設是此目錄 7天前(當天)修改過的檔案                  find . -mtime 7 -print                   find . -mtime +6 -mtime -8 -print       2.檔案大小: 檔案介於於1000byte到32000byte之間                       find . -size +1000c -size -32000c -print          ★3.刪除某些詭異的檔案: 某些檔案因含有特殊字元而無法刪除,                      find . -inum 31246 -exec rm -rf {} /;                      註:31246為其inode值,可用ls -i 察看..          ★4.以精確的時間搜尋:搜尋2001年5月28日11時59分到2001年5月29日0時10分間所有的檔案                      a. touch -t 200105281159 file1                      b. touch -t 200105290010 file2                      c. find . -newer file1 ! -newer file2 -print                          如此就會搜尋出數個檔案 扣除file2的就是所得...                             ★5.將檔案更名:把搜尋出來的更名為                   find . -maxdepth 1 -name "*.o"  -exec mv {} {}.orig                     將檔名符合*.o的檔案名稱附加上.orig                              ★註解:若您第五個無法執行的話也可以這樣做:                  $find . -maxdepth 1 -name "*.o" |                   > while read file                   > do mv "$file" "$file".orig                   > done                                      > 乃是換行後自動出現的提示符號...                                        ◎重要觀念:    ★1.搜尋參數 都是find懂的常規表示法,若表示法為真,就執行一些設定好的動作。          ★2.括號中的先/算: -atime +5 /( -name "*.o" -o -name "*.tmp" /)                        表示搜尋 存取時間大於5天 且(名稱為*.o或是*.tmp)的檔案                                       3.規則式中兩個/算子間若用空白隔開表示 -a 也就是AND          ★4.find任務就是判定整個/算式,而不是找到檔案,        當然,會找到檔案,但那只是一個副作用。               5.儘量不要搜尋NFS檔案,因為萬一NFS server 掛了,會讓整個搜尋停頓。        可以用-maxdepth 或 -prune 限制                                  ◎困難排除:    ★xargs的使用:       有時您會遇到向下面這種情況...語法無誤 但卻無法顯示      find / -print | ls -al     顯示根目錄下的所有檔案      系統會直接出現Broken pine 然後就結束了...      或是出現too many argument ..則表示輸出超出指令列上的長度。      這時就要用到xargs了...整個命令列如下      find / -print | xargs ls -al       結果就會很順利的出現..因為xargs將輸入一個一個依序輸出,      而非一次全部。            說明:xargs看似無用,卻有意想不到的功用喔.
 
http://soft.xuezhishi.net/OS/FreeBSD/rmjq/2007-01-20/17203.html
评论 点击查看
 


加入QQ群:35714363 一起成长
我要加入更多群 我有意见要反映
软件教室

学知识原创教程下载

本类最近更新
阅读排行

其他相关信息