好記性不如爛筆頭。
find是我們常用的命令,也是linux中一個非常幫的命令,find命令的基本使用如下 find pathname -options [-print -exec -ok command] {} \; 參數: --print:將結果輸出到標準輸出 --exec:執行後面的command命令,注意 command {} \;之間的空格 --ok:用法通exec,只不過每次執行都帶詢問,相對安全,但是需要find結果多的時候每次詢問會比較煩 選項: -name filename #尋找名字為filename的檔案 -perm mode #按許可權為mode(如777)尋找 -user username #按屬主查詢 -group groupname #按組名查詢 -mtime -n/+n #按檔案內容修改時間查詢,-n表示n天以內,+n表示n天以外 -atime -n/+n #按訪問時間查詢 -ctime -n/+n #按檔案中繼資料(如許可權或所有權)被改變時間訪問 -nogroup #查無有效屬組的檔案,即所在組在/etc/groups中不存在 -nouser #查無有效屬主的檔案,及使用者在/ect/passwd中不存在 -newer file1 !file2 #尋找比file1檔案新但是比file2檔案舊的檔案 -type typename #尋找某類型檔案:b-塊裝置檔案,d-目錄,c-字元裝置檔案,p-管道檔案,l-符號連結檔案,f-普通類型檔案 -size n[c] #按大小查詢檔案,查詢長度為n塊的檔案,[c]可以是b、c(位元組)、w(2位元組)、k、M、G,如find . -type f -size 2k,找2k的普通檔案 -depth #是尋找在進入子目錄前先遍曆完本目錄,使用這個options會改變輸出順序 -prune #忽略某個目錄 -iname #忽略名字大小寫 -maxdepth #尋找的最大深度 -mindepth #尋找的最小深度 maxdepth、mindepth不應出現在find命令的第4個及以後參數位置,會影響find的效率
#find出10天前修改的txt檔案,複製到OLD目錄find . -type f -name "*.txt" -exec cp {} OLD \;
-exec結合多個命令:我們無法在-exec後面跟多個命令,但是我們可以將命令都放到command.sh中,然後 -exec ./command.sh {} \;