find是Unix/Linux命令行工具箱中最棒的工具之一,該命令對于編寫shell腳本所起到的功用不可小視。
工作方式
find命令的工作方式如下:沿著文件層次結構向下遍歷,匹配符合條件的文件,執(zhí)行相應的操作。
使用方法
$ find base_path
base_path可以是任意路徑(例如/home/slynux),find會從該位置開始向下查找。
$ find . -print
# 打印文件和目錄的列表
.指定當前目錄,..指定父目錄。這是Unix文件系統(tǒng)中的約定用法。
-print指明打印出匹配文件的文件名(路徑)。
根據(jù)文件名或正則表達式進行搜索
選項-name的參數(shù)指定了文件名所必須匹配的字符串。我們可以將通配符作為參數(shù)使用。*.txt能夠匹配所有以.txt結尾的文件名。
$ find /home/slynux -name "*.txt" -print
find命令有一個選項 -iname(忽略字母大小寫),該選項的作用和 -name類似,只不過在匹配名字時會忽略大小寫。
否定參數(shù)
find也可以用“!”否定參數(shù)的含義。例如:
$ find . ! -name "*.txt" -print
根據(jù)文件類型搜索
Unix類系統(tǒng)將一切都視為文件。文件具有不同的類型,例如普通文件、目錄、字符設備、塊設備、符號鏈接、硬鏈接、套接字以及FIFO等。
-type可以對文件搜索進行過濾。借助這個選項,我們可以為find命令指明特定的文件匹配類型。
例如,只列出所有的目錄:
$ find . -type d -print
文件類型與類型參數(shù)對照表
文件類型 | 類型參數(shù) |
---|---|
普通文件 | f |
符號鏈接 | l |
目錄 | d |
字符設備 | c |
塊設備 | b |
套接字 | s |
FIFO | p |