Linux下的指令: 查找指令:find

Linux下find命令在目錄結構中搜索文件,並執行指定的操作。
1. Linux下find命令格式:

$ find pathname -options [-print -exec -ok …]

2. 命令功能:

用於在文件樹中查找文件,並作出相應的處理(可能訪問磁盤)。

3. 命令參數:

pathname:find命令所查找的目錄路徑(也就是要在哪個目錄下查找)。例如用 . 來表示當前目錄,用 / 來表示系統根目錄。

-options :是命令選項的意思。

-print : find命令將匹配到的文件信息輸出到標準輸出。

-ok:-exec命令一樣,只不過以一種更安全的模式來執行該參數所給出的shell命令,在執行每一個命令之前,都會給出提示,讓用戶來確定是否執行。

4.命令選項:

-name:按照文件名查找文件
例1:$ find . -name file #在當前目錄下查找一個名爲 file的文件( . 代表當前目錄)。
例2:$find -name test* #在當前目錄下查找已 test 開始的文件
例3 : $find -name test* -o -name file* #查找以test或file爲開頭的文件。

-perm:按照文件權限查找文件
例1: $ find . -perm 777 #在當前目錄下查找權限爲 rwxrwxrwx 的文件。
例2:$find . -perm -007 #在當前目錄下查找最低權限爲 - - - - - -****r w x 的文件。(-007表示最低權限爲007,像擁有777667567等等這些權限的文件就可以顯示)

-group:按照文件所屬組來查找文件。
例:$ find . -group root #在當前目錄下查找屬於 root 組的文件。

-user:按照文件屬主來查找文件。
例: $find . -user root # 在當前目錄下查找屬於root用戶的文件。

-mtime -n +n:按照文件的更改時間來查找文件, - n 表示文件更改時間距現在n天以內,+n表示更改時間據現在 n 天以前。find命令還有-atime-ctime 選項,但他們都和-mtime選項相同。

-mmin -n +n:表示按照更改的分鐘來顯示。用法和-mtime -n +n 的用法相同。
例:
$find / -mtime -5 #在系統中查找在5天之內更改過的文件。
$find / -amin -60 #在系統中查找在60分鐘之內更改過的文件。
$find / -amin +60 #在系統中查找在60分鐘之前更改過的文件。

-nogroup :查找無有效所屬組的文件,即該所屬的組在/etc/groups中不存在。

-nouser:查找無有效屬主的文件,即該文件的屬主在/etc/passwd中不存在。
例: $ find / -newer file1 ! file2

-type查找某一類型文件,諸如:
b - 塊設備文件。
c - 字符設備文件。
p - 管道文件。
l - 符號鏈接文件。
例: $ find / -type d #查找系統下的所有目錄。

-size n:[c] 查找文件長度爲n塊的文件,帶有 c 時表示文件長度以字節計。

例1:$ find . -size 500 #在當前目錄下查找長度爲500塊的文件(一塊爲512字節)
例3:$ find . -size -500 #查找小於500字節的文件
例5:$ find . -size -500c -size +400c # 查找小於500而大於400字節的文件
例6 :$ find -empty # 查找大小爲0的文件或空目錄。

-depth :在查找文件時,首先查找當前目錄下的文件,然後再在其他子目錄下查找。

-follow :如果find命令遇到符號鏈接文件,就跟蹤至鏈接所指向的文件。

-cpio :對匹配的文件使用cpio命令,將這些文件備份到磁盤設備中。

命令練習:

1.在 /logs 目錄中查找更改時間在5天以前的文件並刪除它們:

 $ find /logs -type f -mtime +5 -exec rm {} \;

2.在/root目錄下用find 命令查找文件大小爲60字節的文件

 $ find /root -size 60c -exec ls -ld {} \;

3.在/root目錄下用find 命令查找小於500k大於50k的文件。

 find /root -size -500k -size +50k -exec ls -ld {} \;

4.查找 / 目錄下文件名爲 test 的目錄。

$ find / -name test -type d

5.查找系統中最近5分鐘訪問的目錄。

 $ find / -amin -5 -type d

6.查找系統中最近5天訪問的文件

  $ find / -atime -5 -type f

7.查找所有目錄中名稱中按照“ .log ”結尾的目錄。

 $ find / -name *.log -type d

8.查找當前目錄下所有權限爲755的文件,並設置成777.

 $ find . -perm 755 -type f -exec chmod 777 {} \;

9.查找文件大小爲10k的文件,並刪除。

$ find . -size 10k -type f -exec rm {} \;

10**.**查找一個名爲test.txt的文件並打印其內容。

  $ find -name test.txt -exec cat {} \;
  11.find / -name filename | xargs rm -rf #找到文件並刪除。(|:(豎槓)管道 (pipeline),連結上個指令的標準輸出,做爲下個指令的標準輸入。)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章