2009年3月24日 星期二

指令: find 小技巧

指令: fine 小技巧

◆ 使用find 找指定時間 (當下時間前60分鐘)
find ./ -type f -name "*.jar" -cmin -60 -exec ls -alh {} \;

◆ 使用find找指定權限
find ./ -maxdepth 1 -type f -perm 0755
◆ 使用find找指定權限以外的
find ./ -mindepth 1 -type f -not -perm 0755
◆ 使用find不遞迴
find . -name “*.so” -maxdepth 1

-maxdepth 1表示查找深度為1
◆ 使用find, 利用name找出所有cpp、h、c副檔名的檔案,ls出來,然後轉給wc去計算行數
find ./ -type f -name "*.cpp*" -or -name "*.c"-exec ls {} \; | wc -l

◆ 使用find, 利用name找出所有cpp、h、c副檔名的檔案,copy到其它目錄
find ./ -type f -name "*.cpp*" -or -name "*.c"-exec cp {} /home/ubuntu/ \;

ref:
咕咕鐘扮鬼臉

◆ 找指定的副檔名:
$  find /path -type f -name "*.pdf"
參數:
  • d, director
  • f, plain file
  • l, symbolic link
  • p, named pipe file
  • b, block device
  • c, char device
ref:
拉不拉多的夢幻世界

ref:
Linux文件查找命令find,xargs详述

◆用以下的指令來清除,如果要在linux底下對某些些檔名類似的檔案作處理的時候也是大同小異
$  find /path -name NAME -print -exec rm -rf {} \;
find是搜尋檔案指令,exec 後面接的是要對搜尋到的檔案做的處理

◆找指定檔案內容的語法:
$  find /path -name "*.log" -exec grep keyword {} \;
$  find /path -name "*.qml" | xargs grep "keyword";

◆找指定檔案內容的語法同時exclude資料夾:
$ find ./ -type d \( -name qt5 -o -name girepository-1.0 -o -name dir3 \) -prune -o -type f -name "*.so" -print

◆ find broken symbolic links:
$ find ./ -type l | while read f; do if [ ! -e "$f" ]; then ls -l "$f"; fi; done

find broken symbolic links and exclude folder:
$ find ./ -type l -prune -or -name ".git" -prune  | while read f; do if [ ! -e "$f" ]; then ls -l "$f"; fi; done

沒有留言:

張貼留言