linux文件查找-find命令

来源:http://www.cnblogs.com/yuezhimi/archive/2017/05/06/6815996.html
-Advertisement-
Play Games

find命令:用於在文件樹中查找文件,並作出相應的處理 1、find命令的格式; find pathname -options [-print -exec -ok ...] {}\ 2、find命令的參數; pathname: find命令所查找的目錄路徑。例如用“.”來表示當前目錄,用“/”來表示 ...


find命令:用於在文件樹中查找文件,並作出相應的處理

1、find命令的格式;

         find pathname -options [-print -exec -ok ...] {}\

2、find命令的參數;

         pathname: find命令所查找的目錄路徑。例如用“.”來表示當前目錄,用“/”來表示系統根目錄。

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

         -exec: find命令對匹配的文件執行該參數所給出的shell命令。相應命令的形式為'command' { } ;,註意{ }和\;之間的空格。

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

3、find命令的選項:

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

         -name:按照文件名查找

         -perm:按照文件許可權來查找

         -prune:可用使find命令不在當前制定的目錄中查找,如果同時使用-depth選項,那麼-prune將被find忽略

         -user:按照文件屬主查找

         -group:按照文件屬組查找

         -nouser:查找無有效屬主的文件

         -nogroup:查找無有效屬組的文件

         -newer file1 file2:查找更改時間比file1新,但是比file2舊的文件

         -type:查找某一類型的文件,諸如:f-普通文件、d-目錄、c-字元文件、b-塊設備、p-管道文件、l-符號連接

         -size:[c] 查找文件長度為n塊的文件,帶有c時表示文件長度以位元組計

         -fstype:查找屬於某一類型文件系統的文件

         -mount:查找文件時不跨越文件系統mount點

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

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

         -mtime -n +n:按照文件的修改時間來查找,-n文件更改時間距現在n天以內,+n文件更改時間距現在n天以前

         -amin n:查找系統中最後n分鐘訪問的文件

         -atime n:查找系統中最後n*24小時訪問的文件

         -cmin n:查找系統中最後n分鐘被改變文件狀態的文件

         -ctime n:查找系統中最後n*24分鐘被改變文件狀態的文件

         -mmin n:查找系統中最後n分鐘被改變文件數據的文件

         -mtime n:查找系統中最後n*24小時被改變文件數據的文件 

4、使用示例:

         1)查找指定時間內修改過的文件:(查找48小時內修改過的文件)

[root@bogon ~]# find -atime -2
.
./.bash_profile

         2)根據關鍵字查找:(查找當前目錄以.log結尾的文件)

[root@bogon log]# find . -name "*.log"
./audit/audit.log
./tuned/tuned.log

         3)根據文件許可權查找:(查找/tmp目錄下許可權為755的文件)

[root@bogon ~]# find /tmp -perm 755 

         4)根據文件類型查找:

[root@bogon ~]# find . -type d -print    ##查找當前目錄下的目錄
.
./data
[root@bogon ~]# find . ! -type d -print    ##查找當前目錄下的非目錄
./.bash_logout
./.bash_profile

         5)根據文件大小查找:(查找當前目錄下大於1k的文件)

[root@bogon ~]# find -size +1000c -print
.
./anaconda-ks.cfg
./.bash_history

         6)根據文件名查找

[root@bogon ~]# find . -name "*.txt"
./test.txt 

5、使用exec或ok來執行shell命令:

         只要把想要的操作寫在一個文件里,就可以用exec來配合find命令查找

    1)顯示當前目錄下麵所有大於10k的文件,exec後面執行了一個命令,{}代表文件名

[root@bogon ~]# find . -type f -size +10k -exec ls -l {} \;
-rw-r--r--. 1 root root 12288 May  4 17:22 ./.test.txt.swp
-rw-------. 1 root root 40960 May  4 17:25 ./.swp

         2)查找/tmp下10天前的文件,刪除

[root@bogon ~]# find /tmp -type f -mtime +10 -ok rm {} \;

     3)備份配置文件,添加.bak擴展名

[root@bogon ~]# find . -name "*.conf" -exec cp {} {}.bak \;
-rw-r--r--. 1 root root 11753 May  6 18:03 httpd.conf
-rw-r--r--. 1 root root 11753 May  6 18:04 httpd.conf.bak

    4)查找主目錄下被其他用戶寫入的文件

[root@bogon ~]# find ~ -perm -002 -exec chmod o-w {} \;

 6、-print 匹配條件:

  簡寫表達式按順序求值, -a 和 -o 都是短路求值。

    1)忽略某個目錄(在httpd目錄下查找文件但不希望在/httpd/conf目錄下查找)

[root@bogon etc]# find httpd -path "httpd/conf" -prune -o -print
httpd
httpd/conf.d
httpd/conf.d/README
httpd/conf.d/autoindex.conf

     2)匹配多個條件,採用OR條件操作

[root@bogon ~]# find . \( -name "*.txt" -o -name "*.conf" \) -print
./httpd.conf
./test.txt

7、xargs命令:

  有些命令不能接受過多參數,此時命令執行可能會失敗,錯誤信息通常是“參數列太長”或“參數列溢出”,這就是xargs命令的用處所在
  find | xargs COMMAND

  示例:在當前目錄下所以普通文件中過濾“nologin”這個詞

[root@bogon ~]# find . -type f -print |xargs grep "nologin"
Binary file ./.test.txt.swp matches
./test.txt:x:1:1:bin:/bin:/sbin/nologin
./test.txt:on:x:2:2:daemon:/sbin:/sbin/nologin

8、locate命令:

  查詢系統上預建的文件索引資料庫,依賴於先構建索引,構建過程需要遍歷整個根文件系統,極消耗資源。

  工作特點:查找速度快,模糊查找,非實時查找。

   -i  執行區分大小寫的搜索

  -n x   只列舉前x個匹配選項  

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Linux Unix 免費 收費 開源 不開源 硬體無要求 有要求 IBM Sun Hp 主流的Linux的髮型版本: RedHat Fedora Mandriva Ubuntu CentOS Debian Getoo ...
  • Fedora是一個Linux發行,基於Redhat,算是Redhat的測試版本。而Fedora workstation預設使用的桌面環境是Gnome,使用Xfce作為桌面環境的Fedora較之稍顯輕量,不過呢,沒有經過配置的Xfce Fedora是很朴素的。 得益於Fedora中文源的出現能讓一些w ...
  • Bash 的若幹基本問題 這裡介紹一些bash啟動前、後的問題,以及一些使用bash需要註意的基本問題。 1、Bash的介紹 Bash是一種Shell程式,它是一般的Linux系統中的預設的Shell程式,一般情況下Bash指的是/bin/bash這個軟體。 一個Linux系統中有多少個可用的She ...
  • linux tcp GSO和TSO實現 ——lvyilong316 (註:kernel版本:linux 2.6.32) 概念 TSO(TCP Segmentation Offload): 是一種利用網卡來對大數據包進行自動分段,降低CPU負載的技術。 其主要是延遲分段。 GSO(Generic Se ...
  • 參考博客: http://www.cnblogs.com/chensiqiqi/p/6243549.html 感謝原博主為我學習Linux指明方向!! linux目錄:一切從“根”開始,“/”是所有目錄的起點(定點) linux每個目錄可以掛載在不同的設備(磁碟)上。 在邏輯上所有目錄(包括目錄下的 ...
  • FastDFS架構簡介 FastDFS是一款開源的、分散式文件系統(Distributed File System),由淘寶開發平臺部資深架構師餘慶開發。FastDFS 是包括一組 Tracker Server 和 Storage Server 的。Tracker Server 與 Storage ...
  • 環境 Qemu: 2.8.0 開發板:vexpress-ca9 概述 前面的博文已經使我們的虛擬開發板具備了訪問外網的目的,離物聯網越來越近了。要玩物聯網,Yeelink不得不說,它提供了雲平臺,可以將設備的數據上傳到雲端,也可以聯網獲得雲端的數據,我們可以通過手機客戶端或在網頁端查看或修改,從而達 ...
  • Linux常用命令 使用PHP伺服器端腳本編程語言進行網站開發,需要在lamp環境下進行,Linux作為”四劍客”之一是有必要瞭解熟悉的,而Linux系統並不像windows操作系統那樣,以圖形化的界面展示給我們,我們只需要滑鼠鍵盤配合使用即可完成我們的需要. 因此Linux系統的特殊性使我們有必要 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...