兩個搜索文件的工具
- locate ?——僅僅通過文件名查找文件
- find ? ? ——依據文件的各種屬性在既定目錄(包括子目錄)里查找
一個通常與文件搜索命令一起使用、處理搜索結果文件列表的命令
- xargs
?
1 locate
1.1 查找文件名中含有zip的文件名
locate zip
看下結果太嚇人了,把所有含有zip的文件都輸出來了
?1.2 文件名中含有zip,并且限定下范圍所在目錄以bin/結尾
locate /bin/zip
結果
1.3 文件名中含有zip,并且所在目錄中含有usr
locate zip | grep usr
?
2. find
2.1 test選項
2.1.1 查看目錄/usr下文件列表清單的數目
find /usr | wc -l
注:
- |是管道命令,把|左邊的輸出作為|右邊的輸入
- wc 是"word count"之意,單純寫wc 會統計出行數、字數、字節數;加上-l參數后只統計出行數。
2.1.2 查看目錄/usr下類型為目錄的文件的數量
find /usr -type d |wc -l
注:find支持搜索的文件類型
? ? ?b - 塊設備文件 ?c - 字符設備文件 ?d - 目錄 ?f - 普通文件 ?l - 符號鏈接
2.1.3 查看目錄/usr下類型為普通文件、名字格式為".so"、大小為1M的文件的數目
find /usr -type f -name "*.png" -size 1M |wc -l
注:
- -name "*.png"表示查找的符合.png通配符格式
- -size是文件的大小:+1M--比1M大 ? ?-1M--比1M小 ? ?1M--正好為1M
2.1.4下邊再列舉幾條test參數(不全,詳見man find)
- -empty ? ? ? ? ? ?匹配空文件和空目錄
- -group name ? ?匹配目錄名name
- -user name ? ? ?匹配文件名name
- -cmin n ? ? ? ? ? 匹配n分鐘前改變狀態(內容或屬性)的文件或目錄
- -mmin n ? ? ? ? ?匹配n分鐘前被修改的文件或目錄
- -mtime ? ? ? ? ? ?匹配n*24小時前被修改的文件或目錄
- perm ? ? ? ? ? ? ? 匹配訪問權限與既定模式匹配的文件或目錄。既定模式可以以八進制或符號形式表示
2.2 action選項
2.2.1 查找當前目錄下文件名中包含.swp的所有文件并刪除
find . -type f -name "*.swp" -delete
注:預定義的find命令操作
- -delete ?刪除匹配文件
- -ls ? ? ? ?對匹配文件進行標準化輸出其文件名及所需求的其他信息
- -print ? ?將匹配的文件進行全路徑輸出(當沒有其他具體操作時,默認操作)
- -quit ? ? 一旦匹配成功便退出
?
2.2.2 查找當前目錄下含有某個字符串的所有文件名
find .|xargs grep "IBM" find .|xargs grep"IBM" -l #只打印出文件名
注:
- xargs是一條Unix和類Unix操作系統的常用命令。它的作用是將參數列表轉換成小塊分段傳遞給其他命令,以避免參數列表過長的問題。
?