日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

使用 UNIX find 命令的高級(jí)技術(shù)( 三 )


$ find $LOGDIR -type d -mtime5 -exec rm -f {} ;
第一個(gè)命令找到 $LOGDIR 目錄中所有包含在 24 小時(shí)內(nèi) (-mtime0) 進(jìn)行了修改的數(shù)據(jù)的目錄 (-type d),并對(duì)它們進(jìn)行壓縮 (compress -r {}) 以節(jié)省磁盤空間 。如果這些目錄超過(guò)了一個(gè)工作周 (-mtime5),第二個(gè)命令則將其刪除 (rm -f {}),以便增加磁盤上的可用空間 。通過(guò)這種方式,cron 任務(wù)自動(dòng)地根據(jù)您所指定的時(shí)間窗口對(duì)目錄進(jìn)行維護(hù) 。
復(fù)制復(fù)雜的目錄樹
如果您想要將復(fù)雜的目錄樹從一臺(tái)計(jì)算機(jī)復(fù)制到另一臺(tái)計(jì)算機(jī),同時(shí)保持副本權(quán)限以及 User ID 和 Group ID(UID 和 GID——操作系統(tǒng)所使用的標(biāo)記文件的所有權(quán)的數(shù)值),并且不復(fù)制用戶文件,那么就需要再次使用 find 和 cpio:
清單 5. 復(fù)制復(fù)雜的目錄樹
$ cd /source/Directory
$ find . -depth -print | cpio -o -O /target/directory
查找不指向任何地方的鏈接
要查找不指向任何地方的鏈接,可以使用帶 find 的 perl 解釋器,如下所示:
$ find / -type l -print | perl -nle '-e || print';
該命令從最頂層目錄 (/) 開始,列出由 perl 解釋器確定不指向任何地方 (-nle '-e || print') 的所有鏈接 (-type l -print),關(guān)于 Unix Guru Universe 站點(diǎn)中這個(gè)技巧的更詳細(xì)的信息,請(qǐng)參閱參考資料部分 。如果您想要?jiǎng)h除這些文件,可以進(jìn)一步使用管道將輸出傳遞到 rm -f {} 命令 。當(dāng)然,Perl 可以在大多數(shù)的 UNIX 工具包中找到,它是許多功能強(qiáng)大的解釋性語(yǔ)言工具中的一種 。
定位和重命名無(wú)法打印的目錄
在 UNIX 中,可能會(huì)有錯(cuò)誤的或惡意的程序創(chuàng)建包含無(wú)法打印的字符的目錄 。定位和重命名這些目錄,這樣就可以更容易地檢查并刪除它們 。要完成該操作,您首先需要在 ls 中包含 -i 開關(guān),以獲取該目錄的索引節(jié)點(diǎn)的數(shù)值 。然后,使用 find 將索引節(jié)點(diǎn)的數(shù)值轉(zhuǎn)換為一個(gè)可以使用 mv 命令進(jìn)行重命名的文件名:
清單 6. 定位和重命名無(wú)法打印的目錄
$ ls -ail
$ find . -inum 211028 -exec mv {} newname.dir ;
列出長(zhǎng)度為零的文件
要列出所有長(zhǎng)度為零的文件,請(qǐng)使用下面的命令:
$ find . -empty -exec ls {} ;
在查找到空文件之后,您可以選擇用 rm 命令來(lái)代替 ls 命令,以刪除這些文件 。
很明顯,您對(duì) UNIX find 命令的使用受到知識(shí)和創(chuàng)造性的限制 。
結(jié)束語(yǔ)
使用 find 命令,可以輕松地瀏覽 UNIX 文件系統(tǒng)中豐富的內(nèi)容 。很值得花時(shí)間來(lái)試驗(yàn)該命令,并了解它能為您做些什么 。正如本文中所列出的示例,您可以通過(guò)許多創(chuàng)造性的方式來(lái)使用 find,這樣可以輕松地瀏覽和管理文件系統(tǒng),并且充滿樂(lè)趣 。

推薦閱讀