目錄
find指令格式:
首頁 運維 linux運維 linux find指令怎麼用

linux find指令怎麼用

Jun 25, 2021 pm 02:01 PM
find命令 linux

在linux中,find指令用於在指定目錄下尋找文件,基本語法「find  path  -option..」。任何位於參數之前的字串都將被視為欲查找的目錄名;如果使用該命令時,不設定任何參數,則find命令將在當前目錄下查找子目錄與檔案。

linux find指令怎麼用

本教學操作環境:Red Hat Enterprise Linux 6.1系統、Dell G3電腦。

Linux find 指令用來在指定目錄下尋找檔案.

find指令格式:

find   path  -option  【 -print 】  【 -exec   -ok   |xargs  |grep  】 【  command  {} \;  】
登入後複製

find指令的參數:

1)path:要尋找的目錄路徑。

  •       ~ 表示$HOME目錄
  •        . 表示當前目錄
  •        / 表示根目錄 

2 )print:表示將結果輸出到標準輸出。 

3)exec:對符合的檔案執行此參數所給的shell指令。

      形式為command {} \;,注意{}與\;之間有空格 

4)ok:與exec作用相同,

      差異在於,在執行指令之前,都會給予提示,讓使用者確認是否執行 

5)|xargs  與exec作用相同,起承接作用

差異在於 |xargs 主要用於承接刪除操作,而 -exec 都可用如複製、移動、重新命名等

6)options :表示查找方式

options常用的有下選項:

-name   filename               #查找名为filename的文件
 -perm                                #按执行权限来查找
 -user    username             #按文件属主来查找
 -group groupname            #按组来查找
 -mtime   -n +n                   #按文件
更改时间
来查找文件,-n指n天以内,+n指n天以前
 -atime    -n +n                   #按文件
访问时间
来查找文件,-n指n天以内,+n指n天以前
 -ctime    -n +n                  #按文件
创建时间
来查找文件,-n指n天以内,+n指n天以前
 -nogroup                          #查无有效属组的文件,即文件的属组在/etc/groups中不存在
 -nouser                            #查无有效属主的文件,即文件的属主在/etc/passwd中不存
 -type    b/d/c/p/l/f             #查是块设备、目录、字符设备、管道、符号链接、普通文件
 -size      n[c]                    #查长度为n块[或n字节]的文件
 -mount                            #查文件时不跨越文件系统mount点
 -follow                            #如果遇到符号链接文件,就跟踪链接所指的文件
 -prune                            #忽略某个目录
登入後複製

任何位於參數之前的字串都會被視為欲查找的目錄名稱。如果使用該指令時,不設定任何參數,則 find 指令將在目前目錄下尋找子目錄與檔案。並且將查找到的子目錄和檔案全部進行顯示。

下面透過一些簡單的例子來介紹下find的常規用法: 

1、按名字查找 
      在目前目錄及子目錄中,找出大寫字母開頭的txt檔案 

$ find . -name '[A-Z]*.txt' -print   
登入後複製

      在/etc及其子目錄中,找出host開頭的檔案 

#
$ find /etc -name 'host*' -print  
登入後複製

      在$HOME目錄及其子目錄中,尋找所有檔案

$ find ~ -name '*' -print
登入後複製

      在目前目錄及子目錄中,找出不是out開頭的txt檔案

$ find . -name "out*" -prune -o -name "*.txt" -print
登入後複製

2、按目錄查找

      在目前目錄除aa以外的子目錄內搜尋txt檔案

$ find . -path "./aa" -prune -o -name "*.txt" -print  
登入後複製

#      在目前目錄及除aa和bb之外的子目錄中尋找txt檔案

 $ find . \( -path './dir0' -o -path './dir1' \) -a -prune -o -name '*.txt' -print
登入後複製

注意:在1、2處都需要加空格,否則會出現如圖所示的錯誤

           在3處加不加-a都可以
      在目前目錄,不再子目錄中,查找txt文件 

$ find . ! -name "." -type d -prune -o -type f -name "*.txt" -print
登入後複製

     或者  

find . -name *.txt -type f -print
登入後複製

友情鏈接:Linux中find命令-path -prune用法詳解

3、依權限查找

      在目前目錄及子目錄中,尋找屬主具有讀寫執行,其他具有讀取執行權限的檔案

$find . -perm 755 -print
登入後複製

      尋找使用者有寫權限或群組使用者有寫權限的檔案或目錄

find ./ -perm /220       
find ./ -perm /u+w,g+w       
find ./ -perm /u=w,g=w
登入後複製

4、按類型尋找(b/d/c/p/l/f ) 

      在目前目錄及子目錄下,查找符號連結檔案

 $ find . -type l -print
登入後複製

5、按屬主及屬組
      尋找屬主是www的檔案

$ find / -user www -type f -print
登入後複製

      尋找屬主被刪除的文件 

$ find / -nouser -type f -print
登入後複製

      查找屬組mysql 的文件 

$ find / -group mysql -type f -print
登入後複製

      查找用戶組被刪掉的文件 

$ find / -nogroup -type f -print
登入後複製


6、按時間查找
      查找2天內被更改過的檔案 

$ find . -mtime -2 -type f -print   
登入後複製

      尋找2天前被更改過的檔案 

 $ find . -mtime +2 -type f -print
登入後複製

      尋找一天前被存取的文件 ##

$ find . -atime -1 -type f -print
登入後複製

#
 $ find . -atime +1 -type f -print  
登入後複製

      尋找一天前已被存取的檔案 

$ find . -ctime -1 -type f -print   
登入後複製

      尋找一天內狀態改變的檔案 

$ find . -ctime +1 -type f -print  
登入後複製
登入後複製

      尋找一天內狀態已變更的檔案 ##
$ find . -cmin +10 -type f -print
登入後複製
登入後複製

      尋找一天內狀態已變更的檔案」與查找一天前狀態被改變的文件 

$ find . -ctime +1 -type f -print  
登入後複製
登入後複製

查找10分钟以前状态被改变的文件

$ find . -cmin +10 -type f -print
登入後複製
登入後複製

7、按文件新旧   

查找比 aa.txt 新的文件

$ find . -newer "aa.txt" -type f -print   
登入後複製

查找比 aa.txt 旧的文件

$ find . ! -newer "aa.txt" -type f -print   
登入後複製

查找比aa.txt新,比bb.txt旧的文件

$ find . -newer 'aa.txt' ! -newer 'bb.txt' -type f -print
登入後複製

8、按大小查找   

查找超过1M的文件

$ find / -size +1M -type f -print   
登入後複製

查找等于6字节的文件

$ find . -size 6c -print   
登入後複製

查找小于32k的文件

$ find . -size -32k -print
登入後複製

9、执行命令   

1)查找 del.txt 并删除,删除前提示确认

$ find . -name 'del.txt' -ok rm {} \;  
登入後複製

2) 查找 aa.txt 并备份为aa.txt.bak

$ find . -name 'aa.txt' -exec cp {} {}.bak \;
登入後複製

3)查当前目录下的所有普通文件

    # find . -type f -exec ls -l {} \; 
    -rw-r–r–    1 root      root         34928 2003-02-25   ./conf/httpd.conf 
    -rw-r–r–    1 root      root         12959 2003-02-25   ./conf/magic 
    -rw-r–r–    1 root      root          180 2003-02-25   ./conf.d/README
登入後複製

查当前目录下的所有普通文件,并在 - exec 选项中使用 ls -l 命令将它们列出

4)在 /logs 目录中查找更改时间在5日以前的文件并删除它们

$ find logs -type f -mtime +5 -exec   -ok   rm {} \;
登入後複製

5)查询当天修改过的文件

# find   ./   -mtime   -1   -type f   -exec   ls -l   {} \;
登入後複製

6)查询文件并询问是否要显示

# find   ./   -mtime   -1   -type f   -ok   ls -l   {} \;  
    < ls … ./classDB.inc.php > ? y
    -rw-r–r–    1 cnscn    cnscn       13709   1月 12 12:22 ./classDB.inc.php
    # find   ./   -mtime   -1   -type f   -ok   ls -l   {} \;  
    < ls … ./classDB.inc.php > ? n
登入後複製

关于 有没有 -print 的区别

加 -print

查找目录并列出目录下的文件(为找到的每一个目录单独执行ls命令,没有选项-print时文件列表前一行不会显示目录名称)

find /home -type d -print -exec ls {} \;
登入後複製

不加 -print

相关推荐:《Linux视频教程

以上是linux find指令怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1328
25
PHP教程
1273
29
C# 教程
1253
24
Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

vscode上一步下一步快捷鍵 vscode上一步下一步快捷鍵 Apr 15, 2025 pm 10:51 PM

VS Code 一步/下一步快捷鍵的使用方法:一步(向後):Windows/Linux:Ctrl ←;macOS:Cmd ←下一步(向前):Windows/Linux:Ctrl →;macOS:Cmd →

git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

sublime寫好代碼後如何運行 sublime寫好代碼後如何運行 Apr 16, 2025 am 08:51 AM

在 Sublime 中運行代碼的方法有六種:通過熱鍵、菜單、構建系統、命令行、設置默認構建系統和自定義構建命令,並可通過右鍵單擊項目/文件運行單個文件/項目,構建系統可用性取決於 Sublime Text 的安裝情況。

Linux的主要目的是什麼? Linux的主要目的是什麼? Apr 16, 2025 am 12:19 AM

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

laravel安裝代碼 laravel安裝代碼 Apr 18, 2025 pm 12:30 PM

要安裝 Laravel,需依序進行以下步驟:安裝 Composer(適用於 macOS/Linux 和 Windows)安裝 Laravel 安裝器創建新項目啟動服務訪問應用程序(網址:http://127.0.0.1:8000)設置數據庫連接(如果需要)

git軟件安裝 git軟件安裝 Apr 17, 2025 am 11:57 AM

安裝 Git 軟件包括以下步驟:下載安裝包運行安裝包驗證安裝配置 Git安裝 Git Bash(僅限 Windows)

See all articles