2013/12/05

[Linux] 常用指令:find

在Linux中常常會需要尋找檔案,這時候就要利用find這個指令來達成。

用法:
find [PATH] [option] [action]

-type [bcdpflsD] 搜尋檔案的類型為 TYPE 的,類型主要有:一般正規檔案 (f), 裝置檔案 (b, c), 目錄 (d), 連結檔 (l), socket (s), 及 FIFO (p) 等屬性。

-iname filename 不限大小寫

-exec command 將搜尋結果執行command動作



find還有一個很好用的用法,假設在build完Linux kernel之後,有時候會需要將一些特殊的執行檔複製到其他資料夾,所以就要使用 -exec來達成。
譬如現在資料夾下有C檔案、O檔案和執行檔,名稱都相同,但我們只需要執行檔。

利用以下指令搜尋出執行檔(非 .c & .o檔)
find ./ -type f \( -iname "CA*" ! -iname "*.*" \)

就可以把執行檔給搜尋出來,然後再利用 -exec 執行cp指令把結果{}複製到Result資料夾中
find ./ -type f \( -iname "CA*" ! -iname "*.*" \) -exec cp {} ../Result/ \;


也可以利用find打開大量的同資料夾的權限

find ./ -type d -name .svn -exec chmod -R 777 {} \;

利用find及-exec的應用,在Makefile和build Linux kernel時候都非常方便。

沒有留言:

張貼留言