日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:183日期:2024-06-13 16:31:55

沒有什么能比得上探索和發(fā)現(xiàn)新的人、地方、事物所帶來的刺激。領(lǐng)域可能有所不同,但有些原則卻是一樣的。在這些原則中,有一條是記錄下您的旅程,另一條則是了解和使用工具。

Unix® 操作系統(tǒng)很像一片廣闊的、未經(jīng)標(biāo)識(shí)的荒野。當(dāng)您在這樣的領(lǐng)域中旅行時(shí),可以選擇一些日后能夠給您帶來幫助的工具。find 命令便是這樣一種工具。find 命令不僅能夠簡(jiǎn)單地用來定位文件,正如本文將介紹的那樣,它還可以自動(dòng)地執(zhí)行其他 UNIX 命令的序列,其中使用所查找到的文件名作為輸入。

Find 的有關(guān)限制

所有稱職的操作系統(tǒng)都具有協(xié)助您查找相關(guān)內(nèi)容的工具。與大多數(shù)工具不同的是,UNIX 中的 find 命令可以自動(dòng)地對(duì)其查找到的文件執(zhí)行許多操作。

圖形用戶界面 (GUI) 中的標(biāo)準(zhǔn) find 工具允許您對(duì)所查找到的文件進(jìn)行一些常規(guī)操作任務(wù):您可以將它們標(biāo)記為剪切、復(fù)制和粘貼,您可以將它們移動(dòng)到一個(gè)新的位置,并且可以使用創(chuàng)建它們的應(yīng)用程序來打開它們。這些操作涉及到兩個(gè)或更多的步驟,并且不是自動(dòng)完成的,即首先查找到文件,然后使用 GUI 為下一步的操作對(duì)它們進(jìn)行標(biāo)記。這種方法對(duì)許多用戶來說沒有問題,但是 Explorer 需要的不僅是這些。

UNIX 的 find 命令可以刪除、復(fù)制、移動(dòng)和執(zhí)行其查找到的文件。另外,使用 -exec 參數(shù)可以根據(jù)您所需要的 UNIX 命令的序列來自動(dòng)地運(yùn)行這些文件。它甚至可以在對(duì)任何文件執(zhí)行這些操作前,進(jìn)一步讓您進(jìn)行確認(rèn)。

簡(jiǎn)化文件系統(tǒng)的管理

與大多數(shù) UNIX 命令一樣,UNIX find 命令具有一長(zhǎng)串令人生畏的選項(xiàng)和開關(guān),它們會(huì)阻礙人們深入地學(xué)習(xí)該命令,但正是因?yàn)槠浞秶鷱V闊,真正的 Explorer 并不會(huì)被它們嚇倒。一條好的通用原則在簡(jiǎn)化一個(gè)復(fù)雜問題時(shí)都會(huì)經(jīng)過漫長(zhǎng)的過程。啟動(dòng)一個(gè) xterm,并嘗試執(zhí)行下面的命令:

$ find . -name *.gif -exec ls {} ;

-exec 參數(shù)中包含了真正有價(jià)值的操作。當(dāng)查找到匹配搜索條件的文件時(shí),-exec 參數(shù)定義了將對(duì)這些文件進(jìn)行什么操作。該示例告訴計(jì)算機(jī)進(jìn)行如下操作:

從當(dāng)前文件夾開始往下搜索,緊跟在 find 之后,使用點(diǎn)號(hào) (.)。

定位所有名稱以 .gif 結(jié)尾的文件(圖形文件)。

列出所有查找到的文件,使用 ls 命令。

需要對(duì) -exec 參數(shù)進(jìn)行更深入地研究。當(dāng)查找到匹配搜索條件的文件名時(shí),find 命令執(zhí)行 ls {} 字符串,用文件名和路徑代替文本 {}。假設(shè)在搜索中查找到 saturn.gif 文件,find 將執(zhí)行如下所示的命令:

$ ls ./gif_files/space/solar_system/saturn.gif

本文余下的內(nèi)容建立在這條一般原則之上:仔細(xì)地使用 find 命令可以讓 Unix 文件系統(tǒng)的管理工作變得更加容易。例如,如果您使用了 -fstype 參數(shù),find 命令可以根據(jù)查找到的文件所處的文件系統(tǒng)的類型來對(duì)命令進(jìn)行相應(yīng)的處理。在 find 命令對(duì)查找到的文件執(zhí)行相應(yīng)命令前將對(duì)您進(jìn)行提示,這通常是非常有用的,您可以使用 -ok 參數(shù)告訴它繼續(xù)執(zhí)行該操作,接下來我們將對(duì)其進(jìn)行介紹。

可選的執(zhí)行

-ok 是 -exec 參數(shù)的一個(gè)重要的替代項(xiàng),它的行為和 -exec 一樣,但它會(huì)提示您是否要對(duì)文件運(yùn)行相應(yīng)的命令。假設(shè)您想要?jiǎng)h除 home 目錄中的大部分 .txt 文件,但希望能夠逐個(gè)文件地執(zhí)行該操作。像 UNIX 中的 rm 命令那樣的刪除操作是很危險(xiǎn)的,因?yàn)楫?dāng)使用像 find 這樣的自動(dòng)化處理方式來查找文件時(shí),它可能一不小心會(huì)刪除重要的文件,您也許希望在刪除這些系統(tǒng)查找到的文件之前對(duì)其進(jìn)行仔細(xì)檢查。

下面的命令列出了您的 home 目錄中所有的 .txt 文件。要?jiǎng)h除這些文件,必須在 find 命令通過列出文件名提示您確認(rèn)操作時(shí)輸入 Y 或者 y:

$ find $HOME/. -name *.txt -ok rm {} ;

它列出了查找到的每個(gè)文件,并且系統(tǒng)將暫停以等待您輸入 Y 或者 y。如果您按下 Enter 鍵,系統(tǒng)將不會(huì)刪除該文件。清單 1 顯示了一些示例結(jié)果:

清單 1. 示例結(jié)果

< rm ... /home/bill/./.kde/share/apps/karm/karmdata.txt > ?< rm ... /home/bill/./archives/LDDS.txt > ?< rm ... /home/bill/./www/txt/textfile1.txt > ?< rm ... /home/bill/./www/txt/faq.txt > ?< rm ... /home/bill/./www/programs/MIKE.txt > ?< rm ... /home/bill/./www/programs/EESTRING.txt > ?...

系統(tǒng)將在每個(gè)問號(hào)之后暫停,在本示例中,每次都按下了 Enter 鍵以繼續(xù)處理下一個(gè)文件。(沒有刪除任何文件。)-ok 參數(shù)允許您控制每個(gè)查找到的文件的自動(dòng)化處理過程,這樣就添加了一種避免自動(dòng)刪除文件的安全措施。

如果在使用 -ok 參數(shù)時(shí)涉及到過多的文件,那么一個(gè)好的方法是先運(yùn)行帶 -exec 的 find 命令以列出所有將要?jiǎng)h除的文件,然后在經(jīng)過檢查確保其中不會(huì)刪除重要的文件后,再次運(yùn)行該命令,其中用 rm 代替 ls。

-exec 和 -ok 都非常有用,您必須確定在當(dāng)前情況下哪一個(gè)能夠更好的工作。請(qǐng)記住,安全第一!

創(chuàng)造性地使用 find

您可以使用 find 命令執(zhí)行各種各樣的任務(wù)。本部分內(nèi)容提供了使用 find 命令來管理文件系統(tǒng)的幾種方式的示例。

為了保持簡(jiǎn)單,這些示例都避免了使用涉及通過管道將一個(gè)命令的輸出傳遞到另一個(gè)命令的 -exec 命令。然而,您完全可以根據(jù)自己需要在 find 命令的 -exec 子句中使用這樣的命令。

清除臨時(shí)文件

您可以使用 find 命令來清除目錄或子目錄中在正常使用過程中生成的臨時(shí)文件,這樣可以節(jié)省磁盤空間。要實(shí)現(xiàn)該操作,請(qǐng)使用下面的命令:

$ find . ( -name a.out -o -name '*.o' -o -name 'core' ) -exec rm {} ;

括號(hào)中的文件掩碼 標(biāo)識(shí)出了需要?jiǎng)h除的文件類型,每個(gè)文件掩碼的前面都有 -name。該列表可以擴(kuò)展為包括您需要清除的系統(tǒng)中的任何臨時(shí)文件類型。在代碼的編譯和連接過程中,程序員及其工具會(huì)生成示例中的那些文件類型:a.out、*.o 和 core。其他的用戶通常也會(huì)生成類似的臨時(shí)文件,可以使用如 *.tmp、*.junk 等文件掩碼來對(duì)命令進(jìn)行相應(yīng)的編輯。您可能還發(fā)現(xiàn)將命令放入一個(gè)稱作 clean 的腳本中非常有用,當(dāng)需要清除一個(gè)目錄中的內(nèi)容的時(shí)候就可以執(zhí)行該腳本。

復(fù)制目錄中的內(nèi)容

find 命令允許您復(fù)制目錄中的全部?jī)?nèi)容,同時(shí)保持每個(gè)文件和子目錄的權(quán)限、時(shí)間和所有權(quán)。要完成該操作,需要組合使用 find 和 cpio 命令,如下所示:

清單 2. 組合使用 find 和 cpio 命令

$ cd /path/to/source/dir$ find . | cpio -pdumv /path/to/destination/dir

cpio 命令是一個(gè)復(fù)制命令,它設(shè)計(jì)用來將文件復(fù)制到或復(fù)制出一個(gè) cpio 或 tar 存檔文件,并自動(dòng)地保持文件和子目錄的權(quán)限、時(shí)間和所有權(quán)。

列出文本文件的第一行內(nèi)容

有些人使用每個(gè)文本文件的第一行作為標(biāo)題或者文件內(nèi)容的描述。可以使用列出文件名和所有文本文件第一行內(nèi)容的報(bào)表更方便地對(duì)大量的文本文件進(jìn)行篩選。下面的命令在報(bào)表中列出了您的 home 目錄中所有文本文件的第一行內(nèi)容,便于進(jìn)一步地根據(jù)需要使用 less 命令進(jìn)行檢查:

清單 3. less 命令

$ find $HOME/. -name *.txt -exec head -n 1 -v {} ; > report.txt$ less < report.txt

維護(hù) LOG 和 TMP 文件的存儲(chǔ)空間

要為生成大量文件的應(yīng)用程序維護(hù) LOG 和 TMP 文件存儲(chǔ)空間,可以將下列命令放入到每天運(yùn)行的 cron 任務(wù)中:

清單 4. 維護(hù) LOG 和 TMP 文件存儲(chǔ)空間

$ find $LOGDIR -type d -mtime +0 -exec compress -r {} ;$ find $LOGDIR -type d -mtime +5 -exec rm -f {} ;

第一個(gè)命令找到 $LOGDIR 目錄中所有包含在 24 小時(shí)內(nèi) (-mtime +0) 進(jìn)行了修改的數(shù)據(jù)的目錄 (-type d),并對(duì)它們進(jìn)行壓縮 (compress -r {}) 以節(jié)省磁盤空間。如果這些目錄超過了一個(gè)工作周 (-mtime +5),第二個(gè)命令則將其刪除 (rm -f {}),以便增加磁盤上的可用空間。通過這種方式,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)大的解釋性語言工具中的一種。

定位和重命名無法打印的目錄

在 UNIX 中,可能會(huì)有錯(cuò)誤的或惡意的程序創(chuàng)建包含無法打印的字符的目錄。定位和重命名這些目錄,這樣就可以更容易地檢查并刪除它們。要完成該操作,您首先需要在 ls 中包含 -i 開關(guān),以獲取該目錄的索引節(jié)點(diǎn)的數(shù)值。然后,使用 find 將索引節(jié)點(diǎn)的數(shù)值轉(zhuǎn)換為一個(gè)可以使用 mv 命令進(jìn)行重命名的文件名:

清單 6. 定位和重命名無法打印的目錄

$ ls -ail$ find . -inum 211028 -exec mv {} newname.dir ;

列出長(zhǎng)度為零的文件

要列出所有長(zhǎng)度為零的文件,請(qǐng)使用下面的命令:

$ find . -empty -exec ls {} ;

在查找到空文件之后,您可以選擇用 rm 命令來代替 ls 命令,以刪除這些文件。

很明顯,您對(duì) UNIX find 命令的使用受到知識(shí)和創(chuàng)造性的限制。

結(jié)束語

使用 find 命令,可以輕松地瀏覽 UNIX 文件系統(tǒng)中豐富的內(nèi)容。很值得花時(shí)間來試驗(yàn)該命令,并了解它能為您做些什么。正如本文中所列出的示例,您可以通過許多創(chuàng)造性的方式來使用 find,這樣可以輕松地瀏覽和管理文件系統(tǒng),并且充滿樂趣。

標(biāo)簽: Unix系統(tǒng)
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品成久久久久| 精品欧美视频| 亚洲激情国产| 青青草91久久久久久久久| 亚洲欧美网站在线观看| 国产成人免费av一区二区午夜| 欧美日一区二区三区在线观看国产免| 成人午夜亚洲| 精品资源在线| 久久久久久久欧美精品| 亚洲综合国产| 免费观看在线综合| 久久xxxx| 日韩高清二区| 久久不见久久见免费视频7| 国产精品sm| 美腿丝袜亚洲三区| 国产精品成人一区二区不卡| 欧洲一区二区三区精品| 日韩精品影视| 亚洲欧美日本视频在线观看| 日本中文字幕一区二区| 亚洲影院天堂中文av色| 日本成人在线一区| 国产精品久久久久久久久久妞妞| 久久中文欧美| 日韩在线观看| 美女被久久久| 国产精品一区二区美女视频免费看 | 国产福利资源一区| 黄毛片在线观看| 激情综合激情| 视频一区日韩精品| 国产精品一区二区精品| 精品九九久久| 成人久久一区| 亚洲一区二区三区免费在线观看| 中文字幕中文字幕精品| 国产精品亚洲综合色区韩国| 青青青免费在线视频| 国产农村妇女精品一二区| 久久国际精品| 日韩欧美午夜| 丝袜诱惑制服诱惑色一区在线观看| 日韩极品在线观看| 亚洲2区在线| 免播放器亚洲| 日韩欧美1区| 久久超级碰碰| 国产日韩欧美一区在线| 午夜一区在线| 午夜国产欧美理论在线播放| 少妇精品久久久一区二区| 国产一区二区高清| 国产精品久久久久久久久久齐齐| 日本不卡免费高清视频在线| 丝袜美腿成人在线| 精品久久久中文字幕| 欧美日韩中文一区二区| 日本在线成人| 日韩欧美一区二区三区在线视频| 麻豆精品网站| 国产一区2区| 免费国产亚洲视频| 97精品中文字幕| 成人看片网站| 亚洲精品少妇| 日韩av免费| 国产欧美日韩免费观看| 91tv亚洲精品香蕉国产一区| 伊人www22综合色| 神马久久午夜| 欧美亚洲国产日韩| 日韩精品久久理论片| 色偷偷偷在线视频播放| 日本v片在线高清不卡在线观看| 国产一区二区三区久久| 亚洲不卡视频| 999久久久免费精品国产| 国产日韩欧美一区二区三区在线观看| 精品国产中文字幕第一页| 一区二区三区午夜视频| 亚洲福利精品| 国产精品密蕾丝视频下载| 久久av免费| 一区二区三区视频免费观看 | 亚洲精品裸体| 国产精品久久久一区二区| 日韩理论视频| 青青草国产成人99久久| 久久高清免费| 国产精品第一| 国产精品magnet| 无码日韩精品一区二区免费| 国产成人1区| 69堂精品视频在线播放| 亚洲免费精品| 亚洲尤物av| 激情丁香综合| 91视频一区| 欧美黄页在线免费观看| 亚洲精品日本| 亚洲免费精品| 国产精品99免费看| 国产高清不卡| 国产精品二区不卡| 麻豆久久久久久久| 欧美综合精品| 日韩一区二区三区免费视频 | 久久这里只有| 欧美日韩1区2区3区| 日韩在线观看一区二区| 亚洲成人日韩| 伊人久久大香线蕉av不卡| 日韩免费av| 高清精品久久| 久久精品国产999大香线蕉| 国产欧美另类| 国产精品亚洲综合久久| 欧美日韩中文| 欧美亚洲专区| 亚洲毛片视频| 香蕉成人av| 国产传媒在线观看| 精品视频在线一区二区在线| 国产精品蜜月aⅴ在线| 国产伦精品一区二区三区在线播放| 日韩国产欧美在线视频| 成人精品视频| 国际精品欧美精品| 日韩88av| 97精品97| 五月婷婷六月综合| 男女男精品视频网| 丝袜诱惑制服诱惑色一区在线观看| 亚洲九九精品| 亚洲精华国产欧美| 亚洲欧洲国产精品一区| 奶水喷射视频一区| 欧美伊人久久| 国产精品亚洲产品| 久久xxx视频| 福利一区在线| 麻豆精品蜜桃| 九九久久电影| 9色国产精品| 免播放器亚洲一区| 亚洲精品人人| 国产欧美啪啪| 欧美www视频在线观看| 日本在线精品| 亚洲综合不卡| 五月天综合网站| 亚州国产精品| 国产亚洲欧美日韩精品一区二区三区| 国产精品亲子伦av一区二区三区| 爽好久久久欧美精品| 日韩高清电影一区| 精品网站999| 国产中文在线播放| 日韩一级欧洲| 欧美日韩1区| 国产欧洲在线| 亚洲一区欧美二区| 欧美精品影院| 伊人久久在线| 香蕉视频成人在线观看| 国产麻豆综合| 国产精品一区高清| 香蕉成人av| 亚洲欧洲免费| 国产精品黑丝在线播放| 黄色成人91| 国产日韩高清一区二区三区在线| 精品午夜av| 中文亚洲免费| 国产精品xxx| 免费av一区| 日韩av不卡在线观看| 欧美午夜不卡| 伊人久久大香线蕉av不卡| 丝袜美腿亚洲一区二区图片| 国产视频一区二| 午夜精品影视国产一区在线麻豆| 日本 国产 欧美色综合| 中文字幕人成乱码在线观看 | 国产免费av一区二区三区| 亚洲欧美日韩国产综合精品二区| 国产麻豆一区二区三区| 亚洲www啪成人一区二区| 在线精品观看| 蜜桃视频在线网站| 亚洲精品乱码| 国产亚洲第一伦理第一区| 日韩欧美一区二区三区在线观看 | 亚洲精品成人| 美女精品久久| 蜜臀国产一区二区三区在线播放| 九九九精品视频| 亚洲精品影院在线观看|