目錄
1、根據檔案名稱或正規表示式尋找檔案" >1、根據檔案名稱或正規表示式尋找檔案
2、尋找不同類型的檔案" >2、尋找不同類型的檔案
3、以特定的時間戳記尋找檔案" >3、以特定的時間戳記尋找檔案
4、依檔案大小找出檔案" >4、依檔案大小找出檔案
5、按权限查找文件" >5、按权限查找文件
6、按文件所有者查找文件" >6、按文件所有者查找文件
7、在查找文件后执行命令" >7、在查找文件后执行命令
总结" >总结
首頁 系統教程 Linux Linux 中 find 指令的 7 個強大用途

Linux 中 find 指令的 7 個強大用途

Feb 15, 2024 am 08:30 AM
linux linux教程 linux系統 linux指令 shell腳本 linux入門 linux學習

好的,我可以嘗試對這段話進行深度偽原創。這是我的修改版本:

在 Linux 中,find 指令是後端開發人員必須掌握的操作之一,除非你使用的是 Windows Server。

在技術面試中,它也是一個常見的話題。下面是一個真實的問題:

如果你的 Linux 伺服器上有一個名為 logs 的目錄,如何刪除其中上次造訪超過一年的日誌檔案? 🤔

這種情況很常見,但令人驚訝的是,並不是每個開發人員都能在面試中清楚地寫出這個命令。

答案:首先,我們需要使用 cd 指令進入對應的目錄。然後,命令如下:

linuxmi@linuxmi:~/www.linuxmi.com$ find . -type f -atime +365 -exec rm -rf {} \;
登入後複製
Linux 中 find 命令的 7 个强大用途

如果你對上述指令還不完全理解,不用擔心。本文將介紹 find 指令的 7 個實用用途,你最終會掌握它。如果你已經知道了,閱讀本文將會是一個很好的複習。

1、根據檔案名稱或正規表示式尋找檔案

#讓我們從最簡單的用法開始。若要按特定名稱搜尋文件,命令如下:

linuxmi@linuxmi:~/www.linuxmi.com$ find . -name linuxmi.sh
登入後複製
Linux 中 find 命令的 7 个强大用途

上述程式碼中的.符號表示目前路徑。如果我們想要搜尋另一個路徑下的文件,只需指定即可:

linuxmi@linuxmi:~/www.linuxmi.com$ find /home/linuxmi/linuxmi.com -name linuxmi.png
登入後複製
Linux 中 find 命令的 7 个强大用途

如何找到所有格式為 png 的圖片?使用正規表示式:

find /home/linuxmi/linuxmi.com -name "*.png"
登入後複製

預設情況下,find 命令會搜尋常規文件,但最好指定類型以使一切更清晰:

find /home/linuxmi/linuxmi.com  -type f -name "*.png"
登入後複製

2、尋找不同類型的檔案

#除了搜尋普通檔案外,我們還可以透過指定-type選項來搜尋其他類型的檔案。

例如目錄:

find . -type d -name "linuxmi*"
登入後複製

或符號連結:

find . -type l -name "linuxmi*"
登入後複製

3、以特定的時間戳記尋找檔案

要以特定的時間戳搜尋文件,我們需要了解Linux系統中的3種不同時間戳記:

存取時間戳記(atime):檔案上次被讀取的時間。修改時間戳(mtime):文件內容上次被修改的時間。更改時間戳(ctime):文件的元數據,例如所有權、位置、文件類型和權限設定等上次更改的時間。

#所以,就像一開始提到的面試問題一樣,要搜尋那些atime超過一年前的文件,我們可以寫以下指令:

linuxmi@linuxmi:~$ find . -type f -atime +365
登入後複製
Linux 中 find 命令的 7 个强大用途

如果我們需要找到 mtime 恰好是 5 天前的文件,請不要包含 號,因為它表示「大於」。

linuxmi@linuxmi:~$ find . -type f -mtime 5
登入後複製
Linux 中 find 命令的 7 个强大用途

顯然, 號表示“大於”,-號表示“小於”。因此,我們可以搜尋 ctime 在 5 到 10 天之間的檔案:

linuxmi@linuxmi:~$ find . -type f -ctime +5 -ctime -10
登入後複製
Linux 中 find 命令的 7 个强大用途

4、依檔案大小找出檔案

-size選項使我們能夠按特定大小找到文件。我們可以使用以下約定指定其計量單位:

  • b:512字节块(默认)
  • c:字节
  • w:两字节单词
  • k:千字节
  • M:兆字节
  • G:千兆字节

与按时间戳查找文件类似,+号表示“大于”,-号表示“小于”。例如,要查找大小在10兆字节和1千兆字节之间的文件:

find . -type f -size +10M -size -1G
登入後複製

5、按权限查找文件

适当控制文件的权限是Linux管理员的重要任务。find命令的-perm选项可以帮助我们按特定权限搜索文件:

find . -type f -perm 777
登入後複製

例如,上述命令将搜索所有具有777权限的文件,这意味着文件对其所有者、组和所有用户具有读、写和执行权限。

6、按文件所有者查找文件

这个任务很简单。我们只需要在-user选项中指定一个用户名。例如,以下命令将找到所有属于 linuxmi 的文件:

find -type f -user linuxmi

7、在查找文件后执行命令

在大多数情况下,我们希望在找到所需文件后执行一些后续操作,例如删除它们、检查它们的详细信息等等。-exec命令使所有这些操作变得更加简单。

现在,为了理解如何使用它,让我们回到之前提到的面试问题:

find . -type f -atime +365 -exec rm -rf {} ;
登入後複製

上述命令中-exec选项后面是rm -rf,用于删除文件。{}是找到的结果的占位符。

注意:占位符{}非常重要,特别是如果你想要删除文件。因为如果你不使用它,命令将对所有文件执行,而不仅仅是通过find命令找到的文件。

为了尝试一下,在终端上执行以下两个命令并检查它们的结果有什么不同:

一个使用了占位符:

find . -type f -atime +5 -exec ls {} ;
登入後複製

另一个没有使用:

find . -type f -atime +5 -exec ls ;
登入後複製

跟在-exec选项后面的命令必须以分号结束。正如我们所知,转义字符用于取消单个字符的特殊含义。在Linux中,反斜杠\被用作转义字符。因此,我们将其用于分号字符。

总结

阅读完find命令的7个用途后,之前提到的面试问题现在看起来非常简单了。现在你能直接写出答案并清楚地解释吗?

find . -type f -atime +365 -exec rm -rf {};
登入後複製

感谢阅读。如果你喜欢,请关注Linux迷 www.linuxmi.com 以享受更多精彩文章。 🙂

以上是Linux 中 find 指令的 7 個強大用途的詳細內容。更多資訊請關注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 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++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教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1269
29
C# 教程
1248
24
Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

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

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)

VSCode怎麼用 VSCode怎麼用 Apr 15, 2025 pm 11:21 PM

Visual Studio Code (VSCode) 是一款跨平台、開源且免費的代碼編輯器,由微軟開發。它以輕量、可擴展性和對眾多編程語言的支持而著稱。要安裝 VSCode,請訪問官方網站下載並運行安裝程序。使用 VSCode 時,可以創建新項目、編輯代碼、調試代碼、導航項目、擴展 VSCode 和管理設置。 VSCode 適用於 Windows、macOS 和 Linux,支持多種編程語言,並通過 Marketplace 提供各種擴展。它的優勢包括輕量、可擴展性、廣泛的語言支持、豐富的功能和版

See all articles