• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 297,  comments - 15,  trackbacks - 0
            find /etc/rc.d -name '*crond' -exec file {} \;

            查找/etc/rc.d目錄下面所有以crond結(jié)束的文件,并使用file指令查看其屬性,注意:exec和file間是一個(gè)空格,file和{}間是一個(gè)空格,file和\;之間是一個(gè)空格,\;是一個(gè)整體。

            要在/usr/linux中查找所有的*.h,并在這些文件中查找“SYSCALL_VECTOR",最后打印出所有包含"SYSCALL_VECTOR"的文件名,有以下幾種方法實(shí)現(xiàn)
            find /usr/linux -name "*.h" | xargs -n50 grep SYSCALL_VECTOR
            grep SYSCALL_VECTOR /usr/linux/*.h | cut -d':' -f1 | uniq > filename
            find /usr/linux -name "*.h" -exec grep "SYSCALL_VECTOR" {} \; -print

              我用find / -name filename| rm -rf,不成功,請問為什么不成功?
            find / -name filename -exec rm -rf {} \;
            find . -name filename |rm -rf試一下{} 表示你找出來的結(jié)果。
            \; 則相當(dāng)于“憲法”,沒什么說頭,就是這么規(guī)定的,在 -exec 后面需要一個(gè)表示該命令終結(jié)的的符號(hào)??梢栽?man find 中找到***。
            要讓rm識(shí)別find的結(jié)果,如下:
            find / -name filename |xargs rm -rf
            之所以find . -name filename |rm -rf不通過,是因?yàn)閞m命令不接受從標(biāo)準(zhǔn)輸入傳過來的指令
              查找含特定字符串的文件
            例如查找當(dāng)前目錄下含有"the string you want find..."字符串的文件:
            $find . -type f -exec grep “the string you want find...” {} ; -print

              從根目錄開始查tmpfile,一旦查到馬上刪除
            find / -name "tmpfile" -exec rm {} \;

              find 的perm問題
            請問一下以下命令什么意思?關(guān)鍵是那個(gè)數(shù)字前的-,其他都還知道
            find -name ".*" -perm -007
            我知道
            find -name ".*" -perm 755
            這個(gè)是用來查找權(quán)限位為755的隱藏文件
            噢,對了還有,我上邊的命令都省略了find的pathname參數(shù) find默認(rèn)是查找當(dāng)前工作目錄的嗎?
            如果我用 -ok 替代 -exec, 那么還需要加上 {} \; 嗎?
            這個(gè)已經(jīng)清楚,仍然需要,因?yàn)?-ok 只是 -exec 的提示模式,它只是多了一個(gè)確認(rèn)操作的步驟,剛才沒有讀懂那幾句E文的意思 呵呵 不好意思
            -007是指查找所有用戶都可讀、寫、執(zhí)行的文件,要小心呀~~~
            解釋解釋?
            find -name ".*" -perm -007 和 find -name ".*" -perm 777 有區(qū)別嗎?
            -007是怎么來得呢?
            不過有一個(gè)問題
            我用 find . -perm -100 會(huì)列出當(dāng)前目錄 . , 這是為什么呢?

            下面引用由explover在 2002/10/01 06:15am 發(fā)表的內(nèi)容:
            -007是指查找所有用戶都可讀、寫、執(zhí)行的文件,要小心呀~~~
            -007是查找含其它用戶(不同組,非屬主)可讀,寫,執(zhí)行的文件.并不一定要同組可讀寫,-是指最少權(quán)限為007.
            下面引用由一顆小白菜在 2002/10/01 10:16am 發(fā)表的內(nèi)容:
            OK了, 呵呵
            不過有一個(gè)問題
            我用 find . -perm -100 會(huì)列出當(dāng)前目錄 . , 這是為什么呢?
            這種方法不會(huì)準(zhǔn)確的找出目錄的. -100是指權(quán)限至少是屬主可運(yùn)行.
            在unix系統(tǒng)下,你可以擁有對目錄文件的執(zhí)行權(quán)你才可以進(jìn)入一個(gè)目錄.這便是目錄文件被列出的原因.
            find . -perm -001 -print找到往往是目錄文件.
            我的意思當(dāng)然不是使用這種方法來找目錄,只不過不明白其中的 -100 意義了
            那以此類推,是不是 -010是指權(quán)限至少是owner同組可執(zhí)行的嗎?也就是說其實(shí)這里的010和-是分開的,-表示一個(gè)至少的意思,而且010才是真正用來描述權(quán)限位的?
            這樣子就明白了 謝謝你噢

              將find出來的東西拷到另一個(gè)地方?
            find *.c -exec cp '{}' /tmp ';'
            如果有特殊文件,可以用cpio,也可以用這樣的語法:
            find dir -name filename -print | cpio -pdv newdir

              找出磁盤中某個(gè)大小范圍內(nèi)的文件
            比如要查找磁盤中大于3M的文件:
            find . -size +3000k -exec ls -ld {} ;

              如何用find查找某一天更改的文件?
            可以使用這一行命令來實(shí)現(xiàn):
            A=`find ~ -print` | ls -l --full-time $A 2>/dev/null | grep "Jun 27" | grep 1998

              使用find 命令查找某個(gè)時(shí)間段的shell怎么寫。比如11點(diǎn)到12點(diǎn)的。thanks
            創(chuàng)建一個(gè)腳本judgetime,內(nèi)容如下:
            ls -l $*|awk '{split($8,hour,":");if((hour[1]>23 || hour[1] < 1)&&hour[1]<24)print}'
            到要查找的目錄下,運(yùn)行
            find ./ -name "*" -exec judgetime {} \;
            注意時(shí)間格式為24小時(shí)制。
            thank you ,如果我要精確到分鐘呢
            touch -t 04241112 starttemp #精確到12分鐘
            touch -t 04241220 endtemp #截止到12點(diǎn)20
            find [dir] -newer starttemp -a ! -newer endtemp -exec ls -l {} \;
            newer?
            那昨天12:10文件如何呢?
            每天執(zhí)行的時(shí)候,用當(dāng)天的日期和時(shí)間戳替換一下不就行了嗎?
            我不知道他是不是把所有的11:00~12:00的都找出來,是不是只執(zhí)行一次還是每天都執(zhí)行?
            這種情況俺猜想是自己的東西放在哪忘了,只記得當(dāng)時(shí)是深夜了。
            有道理!
            不愧是斑竹!
            不光知道怎么解決問題,還知道在什么情況下出現(xiàn)這類問題,佩服佩服!
            問題又出現(xiàn)了。創(chuàng)建這個(gè)文件的時(shí)候。本來應(yīng)該是時(shí)間的一欄現(xiàn)在寫上了2002,而不是12:00.
            等到12:00過了吧!

              刪除指定日期的文件
            find ./ -name 文件名 -exec rm -f {} \;
            例:刪除當(dāng)前30天內(nèi)沒用過的文件,用如下命令:
            find / -atime +30 -exec rm -f {} \;
            我自己試著寫了一小段SHELL,也用ll ,grep, rm 幾個(gè)命令,用起來還差強(qiáng)人意。
            對過濾出來的文件名列表中用了一個(gè)FOR語句,再執(zhí)行rm ?,F(xiàn)在我想把這段SHELL 擴(kuò)展一下讓它每天定時(shí)運(yùn)行將 n 天前的文件刪掉,有沒有人能給我一些提示,謝謝!
            還有個(gè)問題,對于前面那位朋友提到的"find / -atime +30 -exec rm -f {} \;
            "方法,我很早就試過幾次,不過好像都不太對,參數(shù) -atime n 是查找n天前被訪問過的文件,我不明白的是這里的時(shí)間參照點(diǎn)是什么,以及這個(gè)n天是怎么計(jì)算的。
            問題二、對于"ll |cut -f 1" 這個(gè)命令我是不是用錯(cuò)了,我只想取出 ll 中列出的文件名,但用cut -f 命令做不到 ,我只好換用 ll |cut -c 59- 這種方式得到我要的文件名,but it's a pool idear !我也試過用awk ,好像也不對,看看大家可不可以給我一些小小的提醒,TKS SO MUCH
            問題三、如何改變 I結(jié)點(diǎn) 的日期格式 我現(xiàn)在的系統(tǒng)顯示的格式是:
            -rw-r----- 1 msahz01 users 2253 2002年2月 2日 poheader.i
            我想把這換成
            -rw-rw-rw- 1 house users 2193 Apr 19 2001 hkdisp.p
            如何才能做到這點(diǎn)?
            awk 應(yīng)該可以
            ll | awk '{print $9}'
              刪除多少天之前的文件
            find /yourpath -mtime +31 -exec rm {} \;
            find /yourpath -mtime +366 -exec rm {} \;

            find中, -ctime, -mtime及其-atime有何區(qū)別

            請問 -ctime 和 -mtime 有什么關(guān)系 ?
            如果父目錄的 ctime 改變, 那它下面的文件的 ctime 就會(huì)自動(dòng)都改了嗎 ?
            -ctime 和 -mtime ,-atime 這些信息是存在哪兒呢 ?

            我用 -mtime -1 找到了新建或改的文件.
            但怎樣才能找到一天內(nèi) mv 來的文件呢( 它們的時(shí)間是原有的時(shí)間,早于一天 ) ?

            用-newer選項(xiàng)啊。
            你可以先touch一個(gè)你想要的時(shí)間的文件如下:
            $ touch -t 08190800 test
            $ ls -l test
            -rw-r--r-- 1 dba other 0 Aug 19 08:00 test
            然后
            $ find . -newer test -print
            .
            ./.sh_history
            $ ls -l .sh_history
            -rw------- 1 dba other 154 Aug 20 17:39 .sh_history

            用touch可以寫出你想要的任何時(shí)間的文件,然后用-newer ,! -newer選項(xiàng)即可成功。

            1.ctime含inode信息修改的時(shí)間.mtime只指文件內(nèi)容建立或修改的時(shí)間.
            2 不會(huì).
            3.這些信息應(yīng)該是存在文件系統(tǒng)的超級(jí)塊里.

            我查了書 -ctime 是指 inode 的改變(或稱文件的狀態(tài)改變).
            請問 inode 存了哪些信息 ?
            做了些小測試,-mtime 改, -ctime 一定也改.
            改文件名, -ctime 也會(huì)改.
            誰能回答 i-node 存了哪些東西 ?

            vi /usr/include/sys/inode.h

            班主,我不能 access /usr/include/sys/inode.h .
            摘書如下:
            Directories contain directory entries. Each entry contains a file or subdirectory name and an index node reference number (i-node number). To increase speed and enhance use of disk space, the data in a file is stored at various locations in the computer's memory. The i-node contains the addresses used to locate all the scattered blocks of data associated with a file. The i-node also records other information about the file including time of modification and access, access modes, number of links, file owner, and file type.
            可我發(fā)現(xiàn) -atime 改了, -ctime 還沒改. why ?
            ( 我先 cat 一個(gè) ASCII 文件,再用 -atime -1 有它用 -ctime -1 居然沒有它.)
            著豈不跟 inode 信息改變, ctime 就改矛盾嗎?

            我不同意你貼出來的那段文章,正如我提到的那樣,atime,ctime,mtime是放到超級(jí)塊里,在sco unix下是一種叫stat的結(jié)構(gòu).(stat_32),不同的系統(tǒng)文件系統(tǒng)可能不同.
            sco 下inode的結(jié)構(gòu)如下:

            typedef struct inode
            {
            struct inode *i_forw; /* inode hash chain */
            struct inode *i_back; /* '' */
            struct inode *av_forw; /* freelist chain */
            struct inode *av_back; /* '' */
            int *i_fsptr; /* "typeless" pointer to fs dependent */
            ino32_t i_number; /* i number, 1-to-1 with dev address */
            ushort i_ftype; /* file type = IFDIR, IFREG, etc. */
            short i_fstyp; /* File system type */
            off_t i_size; /* size of file */
            ushort i_uid; /* owner */
            ushort i_gid; /* group of owner */
            ushort i_flag;
            ushort i_want; /* i_flag extension to avoid MP races */
            ushort i_count; /* reference count */
            short i_nlink; /* directory entries */
            dev_t i_rdev; /* Raw device number */
            #define i_namtype i_rdev /* i_ftype==IFNAM subtype */
            dev_t i_dev; /* device where inode resides */
            struct mount *i_mton;/* ptr to mount table entry that */
            /* this directory is mounted on */
            struct region *i_rp; /* ptr to shared region if any */
            struct stdata *i_sp; /* ptr to associated stream */
            struct iisem *isem; /* ptr to XENIX semaphores */
            struct iisd *isd; /* ptr to XENIX shared data */
            } i_un;
            #define i_mnton i_un.i_mton /* i_ftype==IFDIR IMOUNT */
            #define i_rptr i_un.i_rp /* i_ftype==IFREG || i_ftype==IFBLK */
            #define i_sptr i_un.i_sp /* i_ftype==IFCHR || i_ftype==IFIFO */
            #define i_sem i_un.isem /* i_ftype==IFNAM && i_namtype==IFSEM */
            #define i_sd i_un.isd /* i_ftype==IFNAM && i_namtype==IFSHD */

            struct fstypsw *i_fstypp; /* ptr to file system switch FSPTR */
            long *i_filocks; /* pointer to filock (structure) list */
            unsigned long i_mappages; /* number of pages currently cached */
            unsigned long i_vcode; /* read-ahead block save (NFS) */
            short i_wcnt; /* write open count or ITEXT count */
            struct lockb i_cilock; /* tas to synchronize i_flag changes */
            ushort i_rdlocks; /* count of non-exclusive lockers */
            } inode_t;


            所以,訪問一個(gè)文件不能改變inode信息.
            使用chown, chgrp, chmod命令可以很好的比較mtime和ctime
            chown改變一個(gè)文件的屬主,用ctime可以找到,用mtime便找不到.
            試試看.

            多謝斑竹! 我是在 Solaris 上面試的.我是對 -ctime 不明白.
            試的結(jié)果如下:
            修改文件,-mtime 改了, -ctime 也會(huì)改.
            訪問文件,-atime 改了, -ctime 沒變.
            chown, chgrp, chmod,mv, 都會(huì)使 -ctime 改變,但不影響 -atime 和 -mtime.
            touch 可以改 -mtime and/or -atime,但 touch -a 只改訪問時(shí)間時(shí),-ctime也改了.
            touch -m 改修改時(shí)間時(shí),-ctime當(dāng)然也改了.
            好象還有別的很多東西可以令 -ctime 改變, 搞不清楚.
            有什么方法可以顯示 -mtime,atime,ctime 嗎?
            可以用 -ctime 來實(shí)現(xiàn)對目錄的增量文件進(jìn)行備份或 transfer 嗎 ?
            多謝!

            沒有什么工具顯示,(可能是俺不知道)
            把下面程序里的st_mtime換成st_ctime,或st_atime便可以得到你要的了.
            #i nclude
            int
            main (int argc, char **argv)
            {
            struct stat buf;
            char date[80];
            char fname[80];
            printf("Enter filename (with full path) to check mtime : ");
            scanf("%s",fname);
            stat(fname, &buf);
            printf ("mtime (in sec) of %s = %ld\n", fname, buf.st_mtime);
            strcpy(date, ctime((time_t *)&(buf.st_mtime)));
            printf ("mtime (in date) of %s = %s\n", fname, date);
            }

            至于文件備份,有什么不可以的么?

            mtime ls -l 最近修改文件內(nèi)容的時(shí)間
            atime ls -lu 最近訪問文件的時(shí)間
            ctime ls -li 最近文件有所改變的狀態(tài) ,如文件修改,屬性\屬主 改變 ,節(jié)點(diǎn) ,鏈接變化等 ,應(yīng)該是不拘泥只是時(shí)間前后的改變

            俺看了ls的幫助,以為只是按ctime或atime排序,顯示的時(shí)間還是mtime.

            仔細(xì)比較了一下,ayhan說的是對的.謝謝ayhan.

            多謝 ahyan 提示 ! 我在 Solaris 上試過如下:
            mtime 用 ls -l 看到
            atime 用 ls -lu 看到
            ctime 用 ls -lc 看到. (ls -li 只有 inode number)
            摘書如下:
            -c Uses time of last modification of the i-node (file
            created, mode changed, and so forth) for sorting (-t)
            or printing (-l or -n).
            -u Uses time of last access instead of last modification
            for sorting (with the -t option) or printing (with the
            -l option).
            -i For each file, prints the i-node number in the first
            column of the report.

            我在sco unix5.0.5中試了一下,好像不對:chmod,chgrp等不會(huì)改變ls -il顯示的時(shí)間;vi,touch倒是有影響。
            每一種操作系統(tǒng)都是由成千上萬個(gè)不同種類的文件所組成的。其中有系統(tǒng)本身自帶的文件,用戶自己的文件,還有共享文件等等。我們有時(shí)候經(jīng)常忘記某份文件放在硬盤中的哪個(gè)地方。在微軟的WINDOWS操作系統(tǒng)中要查找一份文件是相當(dāng)簡單的事情, 只要在桌面上點(diǎn)擊“開始”-“搜索”中就能按照各種方式在本地硬盤上,局域網(wǎng)絡(luò),甚至在INTERNET上查找各種文件,文檔。
              可是使用linux的用戶就沒有那么幸運(yùn)了,在Linux上查找某個(gè)文件確實(shí)是一件比較麻煩的事情。畢竟在linux中需要我們使用專用的“查找”命令來尋找在硬盤上的文件。Linux 下的文件表達(dá)格式非常復(fù)雜,不象WINDOWS,DOS下都是統(tǒng)一的AAAAAAA.BBB格式那么方便查找,在WINDOWS中,只要知道要查找的文件的文件名或者后綴就非常容易查找到。linux中查找文件的命令通常為“find”命令,“find”命令能幫助我們在使用,管理linux的日常事務(wù)中方便的查找出我們需要的文件。對于linux新手來說,“find”命令也是了解和學(xué)習(xí)Linux 文件特點(diǎn)的方法。因?yàn)閘inux發(fā)行版本繁多,版本升級(jí)很快,在Linux書籍上往往寫明某個(gè)配置文件的所在位置,往往linux新手按圖索驥還是不能找到。比如說REDHAT Linux 7.O 和REDHAT linux 7.1中有些重要的配置文件所在的硬盤位置和文件目錄就有了很大的改變,如果不學(xué)會(huì)使用“find”命令,那么在成千上萬的linux文件中要找到其中的一個(gè)配置文件是相當(dāng)困難的,筆者在沒有精通“find”命令之前就吃過這樣的苦頭。好,下面就詳細(xì)為大家介紹強(qiáng)大的“find”命令的全部使用方法和用途。

            通過文件名查找法:
              這個(gè)方法說起來就和在WINDOWS下查找文件一樣容易理解了。 如果你把這個(gè)文件放在單個(gè)的文件夾里面,只要使用常見的“ls"命令就能方便的查找出來,那么使用“find”命令來查找它就不能給你留下深刻的印象,畢竟“find”命令的強(qiáng)大功能不止這個(gè)。如果知道了某個(gè)文件的文件名,而不知道這個(gè)文件放到哪個(gè)文件夾,甚至是層層套嵌的文件夾里。舉例說明,假設(shè)你忘記了httpd.conf這個(gè)文件在系統(tǒng)的哪個(gè)目錄下,甚至在系統(tǒng)的某個(gè)地方也不知道,則這是可以使用如下命令:
              find / -name httpd.conf
              這個(gè)命令語法看起來很容易就明白了,就是直接在find后面寫上 -name,表明要求系統(tǒng)按照文件名查找,最后寫上httpd.conf這個(gè)目標(biāo)文件名即可。稍等一會(huì)系統(tǒng)會(huì)在計(jì)算機(jī)屏幕上顯示出查找結(jié)果列表:
              etc/httpd/conf/httpd.conf
              這就是httpd.conf這個(gè)文件在linux系統(tǒng)中的完整路徑。查找成功。
              如果輸入以上查找命令后系統(tǒng)并沒有顯示出結(jié)果,那么不要以為系統(tǒng)沒有執(zhí)行 find/ -name httpd.conf命令,而可能是你的系統(tǒng)中沒有安裝Apache服務(wù)器,這時(shí)只要你安裝了Apache Web服務(wù)器,然后再使用find / -name httpd.conf就能找到這個(gè)配置文件了。

            無錯(cuò)誤查找技巧:
              在linux系統(tǒng)中“find”命令是大多數(shù)系統(tǒng)用戶都可以使用的命令, 并不是ROOT系統(tǒng)管理員的專利。但是普通用戶使用“find”命令時(shí)也有可能遇到這樣的問題,那就是L inux系統(tǒng)中系統(tǒng)管理員ROOT可以把某些文件目錄設(shè)置成禁止訪問模式。這樣普通用戶就沒有權(quán)限用“find”命令來查詢這些目錄或者文件。當(dāng)普通用戶使用“find”命令來查詢這些文件目錄是,往往會(huì)出現(xiàn)"Permissiondenied."(禁止訪問)字樣。 系統(tǒng)將無法查詢到你想要的文件。為了避免這樣的錯(cuò)誤,我們可是使用轉(zhuǎn)移錯(cuò)誤提示的方法嘗試著查找文件,輸入
              find / -name access_log 2>/dev/null
              這個(gè)方法是把查找錯(cuò)誤提示轉(zhuǎn)移到特定的目錄中去。系統(tǒng)執(zhí)行這個(gè)命令后,遇到錯(cuò)誤的信息就直接輸送到stderrstream 2 中,access_log 2 就是表明系統(tǒng)將把錯(cuò)誤信息輸送到stderrstream 2中,/dev/null是一個(gè)特殊的文件,表明空的或者錯(cuò)誤的信息,這樣查詢到的錯(cuò)誤信息將被轉(zhuǎn)移了,不會(huì)再顯示了。

              在linux系統(tǒng)查找文件也會(huì)遇到這樣一個(gè)實(shí)際問題。如果我們在整個(gè)硬盤, 這個(gè)系統(tǒng)中查找某個(gè)文件就要花費(fèi)相當(dāng)長的一段時(shí)間,特別是大型linux系統(tǒng)和容量較大的硬盤,文件放在套嵌很深的目錄中的時(shí)候。如果我們知道了這個(gè)文件存放在某個(gè)大的目錄中,那么只要在這個(gè)目錄中往下找就能節(jié)省很多時(shí)間了。使用find /etc -name httpd.conf 就可以解決這個(gè)問題。上面的命令就是表示在etc目錄中查詢httpd.conf這個(gè)文件。 這里再說明一下“/ ”這個(gè)函數(shù)符號(hào)的含義,如果輸入 “find/ ”就是表示要求linux系統(tǒng)在整個(gè) ROOT目錄下查找文件,也就是在整個(gè)硬盤上查找文件,而“find/etc”就是只在 etc目錄下查找文件。因?yàn)?#8220;find/etc”表示只在etc目錄下查找文件, 所以查找的速度就相應(yīng)要快很多了。

            根據(jù)部分文件名查找方法:
              這個(gè)方法和在WINDOWS中查找已知的文件名方法是一樣的。不過在linux中根據(jù)部分文件名查找文件的方法要比在WINDOWS中的同類查找方法要強(qiáng)大得多。 例如我們知道某個(gè)文件包含有srm這3個(gè)字母,那么要找到系統(tǒng)中所有包含有這3個(gè)字母的文件是可以實(shí)現(xiàn)的,輸入:
              find /etc -name '*srm*'
              這個(gè)命令表明了linux系統(tǒng)將在/etc 整個(gè)目錄中查找所有的包含有srm這3個(gè)字母的文件,比如 absrmyz,tibc.srm等等符合條件的文件都能顯示出來。如果你還知道這個(gè)文件是由 srm 這3個(gè)字母打頭的,那么我們還可以省略最前面的星號(hào),命令如下:
              find/etc -name 'srm*'
              這是只有像srmyz 這樣的文件才被查找出來,象absrmyz或者absrm這樣的文件都不符合要求,不被顯示,這樣查找文件的效率和可靠性就大大增強(qiáng)了。

            根據(jù)文件的特征查詢方法:
              如果只知道某個(gè)文件的大小,修改日期等特征也可以使用"find"命令查找出來,這和 WINDOWS系統(tǒng)中的"搜索"功能是基本相同的。在微軟的"搜索"中WINDOWS中的"搜索助理"使得搜索文件和文件夾、打印機(jī)、用戶以及網(wǎng)絡(luò)中的其他計(jì)算機(jī)更加容易。它甚至使在 Internet 上搜索更加容易。"搜索助理"還包括一個(gè)索引服務(wù), 該服務(wù)維護(hù)了計(jì)算機(jī)中所有文件的索引,使得搜索速度更快。使用"搜索助理"時(shí),用戶可以指定多個(gè)搜索標(biāo)準(zhǔn)。例如,用戶可以按名稱、類型及大小搜索文件和文件夾。用戶甚至可以搜索包含特定文本的文件。如果用戶正使用 Active Directory,這時(shí)還可以搜索帶有特定名稱或位置的打印機(jī)。
              例如我們知道一個(gè)linux文件大小為1,500 bytes,那么我們可是使用如下命令來查詢 find / -size 1500c,字符 c 表明這個(gè)要查找的文件的大小是以bytes為單位。如果我們連這個(gè)文件的具體大小都不知道,那么在linux中還可以進(jìn)行模糊查找方式來解決。 例如我們輸入find/ -size +10000000c 這個(gè)命令, 則標(biāo)明我們指定系統(tǒng)在根目錄中查找出大于10000000字節(jié)的文件并顯示出來。命令中的“+”是表示要求系統(tǒng)只列出大于指定大小的文件,而使用“-”則表示要求系統(tǒng)列出小于指定大小的文件。下面的列表就是在linux使用不同"find"命令后系統(tǒng)所要作出的查找動(dòng)作, 從中我們很容易看出在linux中使用"find" 命令的方式是很多的,"find"命令查找文件只要靈活應(yīng)用, 絲毫不必在WINDOWS中查找能力差。
              find / -amin -10 # 查找在系統(tǒng)中最后10分鐘訪問的文件
              find / -atime -2 # 查找在系統(tǒng)中最后48小時(shí)訪問的文件
              find / -empty # 查找在系統(tǒng)中為空的文件或者文件夾
              find / -group cat # 查找在系統(tǒng)中屬于 groupcat的文件
              find / -mmin -5 # 查找在系統(tǒng)中最后5分鐘里修改過的文件
              find / -mtime -1 #查找在系統(tǒng)中最后24小時(shí)里修改過的文件
              find / -nouser #查找在系統(tǒng)中屬于作廢用戶的文件
              find / -user fred #查找在系統(tǒng)中屬于FRED這個(gè)用戶的文件
              下面的列表就是對find命令所可以指定文件的特征進(jìn)行查找的部分條件。在這里并沒有列舉所有的查找條件,參考有關(guān)linux有關(guān)書籍可以知道所有find命令的查找函數(shù)。
            -amin n
            查找系統(tǒng)中最后N分鐘訪問的文件
            -atime n
            查找系統(tǒng)中最后n*24小時(shí)訪問的文件
            -cmin n
            查找系統(tǒng)中最后N分鐘被改變狀態(tài)的文件
            -ctime n
            查找系統(tǒng)中最后n*24小時(shí)被改變狀態(tài)的文件
            -empty
            查找系統(tǒng)中空白的文件,或空白的文件目錄,或目錄中沒有子目錄的文件夾
            -false
            查找系統(tǒng)中總是錯(cuò)誤的文件
            -fstype type
            查找系統(tǒng)中存在于指定文件系統(tǒng)的文件,例如:ext2
            -gid n
            查找系統(tǒng)中文件數(shù)字組 ID 為 n的文件
            -group gname
            查找系統(tǒng)中文件屬于gnam文件組,并且指定組和ID的文件


            Find命令的控制選項(xiàng)說明:
            Find命令也提供給用戶一些特有的選項(xiàng)來控制查找操作。下表就是我們總結(jié)出的最基本,最常用的find命令的控制選項(xiàng)及其用法。
            選項(xiàng)
            用途描述
            -daystart
            .測試系統(tǒng)從今天開始24小時(shí)以內(nèi)的文件,用法類似-amin
            -depth
            使用深度級(jí)別的查找過程方式,在某層指定目錄中優(yōu)先查找文件內(nèi)容
            -follow
            遵循通配符鏈接方式查找; 另外,也可忽略通配符鏈接方式查詢
            -help
            顯示命令摘要
            -maxdepth levels
            在某個(gè)層次的目錄中按照遞減方法查找
            -mount
            不在文件系統(tǒng)目錄中查找, 用法類似 -xdev.
            -noleaf
            禁止在非UNUX文件系統(tǒng),MS-DOS系統(tǒng),CD-ROM文件系統(tǒng)中進(jìn)行最優(yōu)化查找
            -version
            打印版本數(shù)字

            使用-follow選項(xiàng)后,find命令則遵循通配符鏈接方式進(jìn)行查找,除非你指定這個(gè)選項(xiàng),否則一般情況下find命令將忽略通配符鏈接方式進(jìn)行文件查找。

            -maxdepth選項(xiàng)的作用就是限制find命令在目錄中按照遞減方式查找文件的時(shí)候搜索文件超過某個(gè)級(jí)別或者搜索過多的目錄,這樣導(dǎo)致查找速度變慢,查找花費(fèi)的時(shí)間過多。例如,我們要在當(dāng)前(.)目錄技巧子目錄中查找一個(gè)名叫fred的文件,我們可以使用如下命令
            find . -maxdepth 2 -name fred

            假如這個(gè)fred文件在./sub1/fred目錄中,那么這個(gè)命令就會(huì)直接定位這個(gè)文件,查找很容易成功。假如,這個(gè)文件在. /sub1/sub2/fred目錄中,那么這個(gè)命令就無法查找到。因?yàn)榍懊嬉呀?jīng)給find命令在目錄中最大的查詢目錄級(jí)別為2,只能查找2層目錄下的文件。這樣做的目的就是為了讓find命令更加精確的定位文件,如果你已經(jīng)知道了某個(gè)文件大概所在的文件目錄級(jí)數(shù),那么加入-maxdepth n 就很快的能在指定目錄中查找成功。

            使用混合查找方式查找文件
            find命令可以使用混合查找的方法,例如我們想在/tmp目錄中查找大于100000000字節(jié)并且在48小時(shí)內(nèi)修改的某個(gè)文件,我們可以使用-and 來把兩個(gè)查找選項(xiàng)鏈接起來組合成一個(gè)混合的查找方式。
            find /tmp -size +10000000c -and -mtime +2

            學(xué)習(xí)過計(jì)算機(jī)語言的朋友都知道,在計(jì)算機(jī)語言里,使用and ,or 分別表示“與”和“或”的關(guān)系。在linux系統(tǒng)的查找命令中一樣通用。
            還有這樣的例子,
            find / -user fred -or -user george

            我們可以解釋為在/tmp目錄中查找屬于fred或者george這兩個(gè)用戶的文件。
            在find命令中還可以使用“非”的關(guān)系來查找文件,如果我們要在/tmp目錄中查找所有不屬于panda的文件,使用一個(gè)簡單的
            find /tmp ! -user panda
            命令就可以解決了。很簡單。

            查找并顯示文件的方法
            查找到某個(gè)文件是我們的目的,我們更想知道查找到的文件的詳細(xì)信息和屬性,如果我們采取現(xiàn)查找文件,在使用LS命令來查看文件信息是相當(dāng)繁瑣的,現(xiàn)在我們也可以把這兩個(gè)命令結(jié)合起來使用。
            find / -name "httpd.conf" -ls

            系統(tǒng)查找到httpd.conf文件后立即在屏幕上顯示httpd.conf文件信息。
            12063 34 -rw-r--r-- 1 root root 33545 Dec 30 15:36 /etc/httpd/conf/httpd.conf

            下面的表格就是一些常用的查找文件并顯示文件信息的參數(shù)和使用方法
            選項(xiàng)
            用途描述
            -exec command;
            查找并執(zhí)行命令
            -fprint file
            打印文件完整文件名
            -fprint0 file
            打印文件完整文件名包括空的文件
            -fprintf file format
            打印文件格式
            -ok command;
            給用戶命令執(zhí)行操作,根據(jù)用戶的Y 確認(rèn)輸入執(zhí)行
            -printf format
            打印文件格式
            -ls
            打印同種文件格式的文件

            總結(jié):到這里為止我們已經(jīng)學(xué)習(xí)了這名多關(guān)于find命令的使用方法,也列出了很多常用的find命令的選項(xiàng),如果我們能熟練掌握在linux中find命令的使用方法,那么在Linux中查找文件也不是一件困難的事情。

            轉(zhuǎn)自:
            http://www.lupaworld.com/94908/viewspace-109380.html
            posted on 2009-11-10 22:32 chatler 閱讀(441) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Shell
            <2009年12月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            常用鏈接

            留言簿(10)

            隨筆分類(307)

            隨筆檔案(297)

            algorithm

            Books_Free_Online

            C++

            database

            Linux

            Linux shell

            linux socket

            misce

            • cloudward
            • 感覺這個(gè)博客還是不錯(cuò),雖然做的東西和我不大相關(guān),覺得看看還是有好處的

            network

            OSS

            • Google Android
            • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
            • os161 file list

            overall

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            免费一级欧美大片久久网| 久久久精品人妻一区二区三区四 | 久久久久久久97| 久久精品无码午夜福利理论片| 色婷婷久久综合中文久久蜜桃av| 狠狠色婷婷综合天天久久丁香 | 精品久久久久久久久午夜福利| 久久精品国产亚洲欧美| 久久婷婷色综合一区二区| 漂亮人妻被黑人久久精品| 国产91色综合久久免费分享| 国产精品久久久天天影视香蕉| 波多野结衣久久| 久久99精品久久久久久动态图| 国产精品综合久久第一页| 影音先锋女人AV鲁色资源网久久| 久久免费视频观看| 无码人妻精品一区二区三区久久久| 色综合久久88色综合天天| 久久天天躁狠狠躁夜夜96流白浆| 久久人人爽人人精品视频| 久久婷婷五月综合97色| 模特私拍国产精品久久| 久久青草国产精品一区| 伊人久久大香线蕉av不卡| 性做久久久久久久久久久| 久久精品国产99久久香蕉| 国产高潮国产高潮久久久| 久久午夜无码鲁丝片| 久久夜色精品国产亚洲| 亚洲伊人久久成综合人影院 | 色天使久久综合网天天| 久久综合九色综合欧美狠狠| 伊人久久大香线蕉精品不卡| 91久久国产视频| 久久国产精品久久| 精品久久久久久无码中文字幕一区| 久久人人爽人人人人爽AV | 久久免费视频观看| 久久人与动人物a级毛片| 2021国内久久精品|