1. 程式人生 > >Linux系統命令列 Find工具使用小技巧

Linux系統命令列 Find工具使用小技巧

Linux系統命令列 Find工具使用小技巧 

命令列一直是Linux使用者用來解決問題的首要選擇。當需要做某件事時,你只要想好如何去做,從那時起你就知道該如何做了。

  不過很少有人花些時間系統地瞭解處理工具在處理過程中的輸入和輸出。因此對於最基本實用工具的功能可能並不是很瞭解。在本文中,我們將討論所有shell工具箱中都有的一個重要工具:find實用工具。

  正如它的名字所表示的,find是在磁碟中查詢滿足給定標準的檔案和目錄的應用程式。預設情況下,它從當前目錄開始,向下掃描所有子目錄。Find基於各種不同的檔案屬性來進行查詢,而且可以對查詢結果執行某種操作,通常是對每個查詢結果執行一些程式。

  讓我們來看一些例子:首先,為了在當前目錄或子目錄中查詢所有html檔案,我們可以使用:find -name "*.html" -type f

  該命令有兩個測試條件,第一個,“-name”用於檢驗搜尋過程中的每個檔名,如果你需要對大小寫敏感,可以使用“-iname”代替。第二個引數是“-type”,它用於指定你感興趣的檔案型別。“f”表示我們查詢的是普通檔案,我們可以使用“d”表示目錄或使用“l”表示符號連線。在find 手冊中可以看到該工具的所有選項。

  在上面的這個例子中,因為我們要在當前目錄中搜索,所以沒有指定路徑。你可以從你的系統中的任何目錄開始搜尋,例如,你知道html檔案存放在兩個位置之一中,那麼我們就可以通過指定一個開始搜尋點使查詢更快更準確。

  find /var/www /home/nickg/public_html -name "*.html" -type f

  這個查詢從web伺服器的根目錄開始,搜尋我的html根目錄和它的子目錄,希望能夠得到我們想要的結果,而不是像web瀏覽器快取或html幫助檔案。

  預設情況下,find遍歷所有子目錄,但是你可以通過指定最大深度來控制這個行為。在前面的例子中,如果我們只想搜尋這兩個目錄不想搜尋下一層,你可以新增“-maxdepth 1”到命令中。設定最大深度為0表示只檢驗命令列中的給定檔案。同樣,你可以設定最小深度,從而避免搜尋位於根目錄的檔案。

  find 的另一個應用是搜尋屬於某個給定使用者的檔案,因此為了搜尋我的系統中所有屬於我的檔案,我使用以下命令:find / -user nickg

  同樣可以搜尋基於組使用者的檔案,使用“-group”引數。


  另外的測試分類與時間相關,我們可以用基於時間的方式來搜尋檔案,可以分別使用“-ctime”,“-atime”和“-mtime”引數來指定最後建立時間,最後訪問時間和最後修改時間。例如要搜尋前天建立的檔案,可以使用:find -ctime -1

  注意1前面的“-”表示我們是從今天向以前的日期範圍搜尋。如果你需要更精確地搜尋,可以使用分鐘變數“-cmin”,“-amin”和“-mmin”。如果你剛犯了一個錯誤但不確定會影響到那些檔案,這很簡單可以使用如下查詢:find -mmin -5

  find對檔案執行的標準行為是顯示出檔名,這就是為什麼如果你跟蹤結果,就會看到一系列檔名的原因。如果你想使用這些結果作為另外一個過濾器的輸入的話,這將會十分有用。但是如果你需要結果的更多資訊,你可以令find輸出與ls –l 同樣的結果:

  find -user nickg -iname "*.html" –ls

  這個命令將會返回檔案許可權和時間資訊。

  最後,你可以通過使用“-exec”引數,來讓find命令對每個搜尋結果執行任何程式。下面的程式將會刪除你的home目錄中所有副檔名為“.tmp”的檔案。

  find -name ".tmp" -exec rm {} ;

  上面兩個大括號將會被相應的檔名代替,反斜槓用來告訴find何時命令結束。Find常和chmod結合使用快速改變大量檔案的檔案許可權,或者和grep與sed結合使用來選擇性的搜尋或使用正則表示式修改文字。這僅是與find相關使用技巧的冰山一角,使用它作為一個指令碼的輸入,你可以讓費時的任務自動完成,例如清除一年內沒有訪問的檔案,或者自動備份修改的檔案。Find的這種強大更能意味著它仍將是linux使用者用來處理任務的最好工具之一。

相關推薦

Linux系統命令 Find工具使用技巧

Linux系統命令列 Find工具使用小技巧  命令列一直是Linux使用者用來解決問題的首要選擇。當需要做某件事時,你只要想好如何去做,從那時起你就知道該如何做了。   不過很少有人花些時間系統地瞭解處理工具在處理過程中的輸入和輸出。因此對於最基本實用工具的功能可能並不是

linux系統命令基本操作——find和vim命令

因為student使用者許可權問題會有以下輸出 find: ‘/etc/pki/CA/private’: Permission denied        ##沒有進入權力,報錯 find: ‘/etc/pki/rsyslog’: Permission denied find: ‘/etc/audit’: P

Linux——Linux系統命令獲取公網IP的方法

今天介紹一些檢視linux系統公網IP的方法 1.通過訪問ipconfig.co來檢視。 命令列如下: #更多用法訪問ifconfig.co wget -qO - ifconfig.co 2.通過curl來獲取IP 如果沒有curl,要先下載安裝curl sudo yum i

Linux系統命令整理

1、pwd  檢視當前所在目錄 2、cd /  跳往根目錄 3、ls  檢視當前目錄所有子目錄或檔案 4、ls -l  列出當前目錄詳細資訊 5、ls -lh  h=human 人性化列出當前目錄詳細資訊 6、cd ..  回到上一級 7

linux系統上檔案傳輸的技巧

yum -y install lrzsz Loaded plugins: fastestmirror, refresh-packagekit, security Setting up Install Process Loading mirror speeds from cached hostfile *

linux cd 命令的幾個技巧

轉載:http://hi.baidu.com/pie138/item/488ebf5eac9e23404eff200b 說linux cd命令是Linux上使用率最高的兩個命令之一不為過吧(另一個當然是ls了),前兩天看到了一個linux cd命令的幾個小技巧,這裡順便記

linux系統命令基本操作——程序

kill -訊號 程序pid killall -訊號    程序名字 pkill    -u student -訊號     SIGHUP     終止程序     終端線路結束通話 SIGINT     終止程序     中斷程序 SIGQUIT   建立CORE檔案終止程序,並且生成core檔案 SIGI

Linux 系統命令下,對 SQLite3 資料庫使用的一般操作

1.進入資料庫 sqlite3 databaseName.db 2.檢視資料庫 .databases //資料庫路徑 .tables //資料庫內的表格 3.建立表格 CREAT TABLE tableName(id INTEG

linux系統命令基本操作8——系統日誌

2)格式日誌裝置(型別).(連線符號)日誌級別   日誌處理方式(action) ####日誌裝置(可以理解為日誌型別):#### auth                ##pam產生的日誌 authpriv            ##ssh,ftp等登入資訊的驗證資訊 cron             

linux系統命令基本操作——檔案管理

各種二級目錄在linux中的作用 /bin       ##二進位制可執行檔案也就是系統命令 /sbin     ##系統管理命令存放位置 /boot     ##啟動分割槽,負責系統啟動 /dev      ##裝置管理檔案 /etc       ##大多數系統管理檔案 /home   ##普通使用者的家目

Linux 命令下載工具 wget 的使用技巧

wget 是一個命令列的下載工具。對於我們這些 Linux 使用者來說,幾乎每天都在使用它。下面為大家介紹幾個有用的 wget 小技巧,可以讓你更加高效而靈活的使用 wget。 $ wget -r -np -nd http://example.com/packages/

blat命令發郵件工具【簡單使用技巧

Blat 是一個命令列發郵件的小工具,僅支援簡單的SMTP協議,需要SMTP伺服器的支援。 據說現在新申請的郵箱已經不支援SMTP服務了,是為了抑制垃圾郵件而採取的措施。 但是,Blat也是一個非常方便的小工具,基本上可以滿足一般人的需求。 簡單使用方法: 在控制檯中切換到Blat.exe V2.6.

linux系統使用之find命令常用用法集錦

find命令 linux系統 find命令用來在指定目錄下查找文件。如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件。並且將查找到的子目錄和文件全部進行顯示。find 命令路徑: /bin/find功能描述:文件搜索find [目錄] [條件] [動作][目錄]不輸入代表

Linux命令翻譯工具

一、背景 經常在linux命令列下有些單詞不認識,複製出來通過翻譯軟體很不方便,如果有個命令列翻譯就比較舒服了。通過下面shell指令碼可以在/usr/bin/yd建立yd命令來進行快速命令列翻譯。 二、程式碼 git地址 #!/bin/bash # # CMD=/usr/bin/yd cat

問題集03】-linux網路命令-持續更新

1 網口ip配置及啟用【命令列】 sudo ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up 2 網口配置【配置檔案】 Linux裡面有兩套管理網路連線的方案: (1)/etc/network/interfac

21款最佳Linux命令終端工具

本文中,介紹了14款最佳Linux命令列終端工具,可以用來替代debian系的Linux原生終端。如果你每天需要花大量的時間使用Linux命令列,而且正在尋找一些可替代系統自帶的老舊且乏味的終端軟體,不妨看看這篇文章,或許能給你帶來一些幫助。 如果你跟我一樣,

JAVA呼叫linux中的shell命令工具

二話不說,直接上程式碼! package cn.sigangjun.util; /** * <p>Title:java call linux shell util </p> * <p>Description: java call

模擬瀏覽器自動化測試工具Selenium之五Centos系統命令下部署selenium環境試驗

一、背景:     Selenium是一個web自動化測試框架,也支援從HTML頁面上爬取javascript生成的或AJAX的內容。     selenium2支援通過各種driver(FirfoxDriver、IternetExplorerDriver、OperaDri

大餐分享: Windows環境下學習linux命令,編輯器vim, 指令碼和Git的絕佳工具---msysGit(才十幾M)

      之前介紹過Windows下的msysGit工具, 很強大, 現在來總結一下其功能:       1. 學習linux的shell command  [email protect

linux命令操作快捷鍵及技巧

歷史相關命令 !!:執行上一條命令 !num:執行歷史命令中第num條命令 !-num:執行歷史命令中倒數第num條命令 !?string?:執行最近一條包含有string字串的命令 Ctrl+r:搜尋上一條匹配的命令 !$:代表上一個命令的最後一個字串 E