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
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...