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

使用 UNIX find 命令的高級技術( 二 )


$ find $HOME/. -name *.txt -ok rm {} ;
它列出了查找到的每個文件,并且系統(tǒng)將暫停以等待您輸入 Y 或者 y 。如果您按下 Enter 鍵,系統(tǒng)將不會刪除該文件 。清單 1 顯示了一些示例結果:
清單 1. 示例結果
< 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)將在每個問號之后暫停,在本示例中,每次都按下了 Enter 鍵以繼續(xù)處理下一個文件 。(沒有刪除任何文件 。)-ok 參數(shù)允許您控制每個查找到的文件的自動化處理過程,這樣就添加了一種避免自動刪除文件的安全措施 。
如果在使用 -ok 參數(shù)時涉及到過多的文件,那么一個好的方法是先運行帶 -exec 的 find 命令以列出所有將要刪除的文件,然后在經(jīng)過檢查確保其中不會刪除重要的文件后,再次運行該命令,其中用 rm 代替 ls 。
-exec 和 -ok 都非常有用,您必須確定在當前情況下哪一個能夠更好的工作 。請記住,安全第一!
創(chuàng)造性地使用 find
您可以使用 find 命令執(zhí)行各種各樣的任務 。本部分內容提供了使用 find 命令來管理文件系統(tǒng)的幾種方式的示例 。
為了保持簡單,這些示例都避免了使用涉及通過管道將一個命令的輸出傳遞到另一個命令的 -exec 命令 。然而,您完全可以根據(jù)自己需要在 find 命令的 -exec 子句中使用這樣的命令 。
清除臨時文件
您可以使用 find 命令來清除目錄或子目錄中在正常使用過程中生成的臨時文件,這樣可以節(jié)省磁盤空間 。要實現(xiàn)該操作,請使用下面的命令:
$ find . ( -name a.out -o -name '*.o' -o -name 'core' ) -exec rm {} ;
括號中的文件掩碼 標識出了需要刪除的文件類型,每個文件掩碼的前面都有 -name 。該列表可以擴展為包括您需要清除的系統(tǒng)中的任何臨時文件類型 。在代碼的編譯和連接過程中,程序員及其工具會生成示例中的那些文件類型:a.out、*.o 和 core 。其他的用戶通常也會生成類似的臨時文件,可以使用如 *.tmp、*.junk 等文件掩碼來對命令進行相應的編輯 。您可能還發(fā)現(xiàn)將命令放入一個稱作 clean 的腳本中非常有用,當需要清除一個目錄中的內容的時候就可以執(zhí)行該腳本 。
復制目錄中的內容
find 命令允許您復制目錄中的全部內容,同時保持每個文件和子目錄的權限、時間和所有權 。要完成該操作,需要組合使用 find 和 cpio 命令,如下所示:
清單 2. 組合使用 find 和 cpio 命令
$ cd /path/to/source/dir
$ find . | cpio -pdumv /path/to/destination/dir
cpio 命令是一個復制命令,它設計用來將文件復制到或復制出一個 cpio 或 tar 存檔文件,并自動地保持文件和子目錄的權限、時間和所有權 。
列出文本文件的第一行內容
有些人使用每個文本文件的第一行作為標題或者文件內容的描述 。可以使用列出文件名和所有文本文件第一行內容的報表更方便地對大量的文本文件進行篩選 。下面的命令在報表中列出了您的 home 目錄中所有文本文件的第一行內容,便于進一步地根據(jù)需要使用 less 命令進行檢查:
清單 3. less 命令
$ find $HOME/. -name *.txt -exec head -n 1 -v {} ; > report.txt
$ less < report.txt
維護 LOG 和 TMP 文件的存儲空間
要為生成大量文件的應用程序維護 LOG 和 TMP 文件存儲空間,可以將下列命令放入到每天運行的 cron 任務中:
清單 4. 維護 LOG 和 TMP 文件存儲空間
$ find $LOGDIR -type d -mtime0 -exec compress -r {} ;

推薦閱讀