【mac】如何在 macOS 終端中高效查找文件:五種實用方法

【mac】如何在 macOS 終端中高效查找文件:五種實用方法

在 macOS 上,終端是一個強大的工具,不僅可以執行命令,還能幫助你快速找到需要的文件。無論是按文件名、類型、大小,還是文件內容搜索,都有多種命令可以勝任。本文將介紹五種常用的查找方法:findlocatemdfindgrepfd,并分析它們的適用場景和優缺點。無論你是新手還是老手,這篇指南都能幫你提升效率!

文章目錄

  • 【mac】如何在 macOS 終端中高效查找文件:五種實用方法
    • 1. `find`:功能強大的文件搜索工具
      • (1)按文件名查找
      • (2)按文件類型查找
      • (3)按文件大小查找
      • (4)按修改時間查找
    • 2. `locate`:最快的文件查找方式
      • (1)初始化數據庫
      • (2)按文件類型搜索
      • (3)模糊匹配
    • 3. `mdfind`:利用 Spotlight 的全局搜索
      • 用法示例
      • 注意事項
    • 4. `grep`:按文件內容搜索
      • 用法示例
    • 5. `fd`:現代化的 `find` 替代品
      • 用法示例
    • 總結:選擇適合你的工具

1. find:功能強大的文件搜索工具

find 是 macOS 終端中最經典的查找命令,適合需要深度遞歸搜索的場景。它支持按文件名、文件類型、大小和修改時間等多種條件。

(1)按文件名查找

  • 基本用法:

     find / -name "filename.txt"
    
    • /:從根目錄開始搜索(可能因權限問題受限,建議用 ~ 代表用戶目錄)。
    • -name "filename.txt":精確匹配文件名。
  • 忽略大小寫:

    find / -iname "filename.txt"
    
  • 搜索當前目錄:

    find . -name "filename.txt"
    

(2)按文件類型查找

  • 查找所有 .log 文件:

    find /var/log -name "*.log"
    
  • 查找所有目錄:

    find / -type d -name "foldername"
    
  • 查找所有 .jpg 圖片:

    find ~/Pictures -name "*.jpg"
    

(3)按文件大小查找

  • 大于 100MB 的文件:
    find / -size +100M
    
  • 小于 1KB 的文件:
    find / -size -1k
    

(4)按修改時間查找

  • 最近 7 天修改的文件:
    find / -mtime -7
    
  • 最近 1 小時修改的文件:
    find / -mmin -60
    

優點:靈活,支持多種條件組合。
缺點:速度較慢,依賴磁盤掃描。

2. locate:最快的文件查找方式

locate 通過 macOS 的預構建數據庫查找文件,速度極快,適合快速定位已知文件。

(1)初始化數據庫

macOS 默認未啟用 locate,需手動開啟:

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
sudo /usr/libexec/locate.updatedb

完成后即可使用:

locate filename.txt

(2)按文件類型搜索

locate "*.jpg"

(3)模糊匹配

locate "document"

返回所有包含 “document” 的文件路徑。

注意locate 依賴數據庫,可能無法立即找到新創建的文件。需定期更新數據庫。

優點:速度極快。
缺點:依賴數據庫更新。

3. mdfind:利用 Spotlight 的全局搜索

mdfind 是 macOS Spotlight 的命令行接口,利用系統索引實現快速查找。

用法示例

  • 按文件名查找
     mdfind "filename.txt"
    
  • 按關鍵字查找:
    mdfind "project report"
    
  • 查找 .pdf 文件:
    mdfind "kind:pdf"
    

注意事項

需確保 Spotlight 索引已啟用:

sudo mdutil -E /

優點:快速,集成 macOS 原生索引。
缺點:依賴 Spotlight,可能不適合未索引區域。

4. grep:按文件內容搜索

如果你需要查找文件中的特定內容,grep 是最佳選擇。它適用于文本文件搜索。

用法示例

  • 查找包含 “error” 的文件
    grep -r "error" /path/to/directory
    
  • 只顯示文件名:
    grep -rl "error" /path/to/directory
    

注意grep 不適合二進制文件(如圖片、視頻)。

優點:支持內容搜索。
缺點:速度取決于文件數量和大小。

5. fd:現代化的 find 替代品

fd 是一個更快速、更用戶友好的工具,可通過 Homebrew 安裝:

brew install fd

用法示例

  • 查找文件:
    fd filename
    
  • 按擴展名查找:
    fd -e jpg
    
  • 忽略大小寫:
    fd -i filename
    

優點:速度快,語法簡單。
缺點:需額外安裝。

總結:選擇適合你的工具

方法適用場景速度
find遞歸搜索整個文件系統
locate快速查找已索引文件
mdfindSpotlight 全局搜索
grep按文件內容搜索適中
fd現代化的 find 替代
  • 快速查找:推薦 locatemdfind
  • 深度搜索:選擇 find
  • 內容搜索:用 grep
  • 現代化體驗:試試 fd

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/95459.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/95459.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/95459.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

React筆記_組件之間進行數據傳遞

目錄父子組件傳值- props父傳子子傳父嵌套組件傳值-Context API概念React.createContext APIProvider組件正確示例錯誤示例消費 ContextReact.Consumer組件useContext Hook區別使用場景舉例說明-用戶信息狀態管理-Redux父子組件傳值- props 在React中父子組件傳值是單向數據流…

Elixir通過Onvif協議控制IP攝像機,擴展ExOnvif的攝像頭停止移動 Stop 功能

ExOnvif官方文檔 在使用 Elixir 進行 IPdome 控制時,可以使用 ExOnvif 庫。 ExOnvif官方文檔中未給停止移動調用命令,自己按照onvif協議 Onvif協議 擴展的此項功能; 停止移動 Stop 在Onvif協議中,用于停止云臺移動的操作為Stop…

spring boot autoconfigure 自動配置的類,和手工 @configuration + @bean 本質區別

它們在本質功能上都是為了向 Spring 容器注冊 Bean,但在觸發方式、加載時機、可控性和適用場景上有明顯區別。可以這樣理解:1?? 核心區別對比維度Configuration Bean(手工配置)Spring Boot EnableAutoConfiguration / 自動配置…

論文解讀 | Franka 機器人沉浸式遠程操作:高斯濺射 VR 賦能的遙操框架研發與應用

研究背景 在工業制造、危險環境作業等領域,機器人遠程操作技術是突破人類作業邊界的關鍵手段。傳統遠程操作依賴2D 相機反饋與操縱桿控制,存在空間感知差、操作精度低、沉浸感弱等問題,難以滿足復雜移動操作任務需求。 例如在核設施退役、災后…

【Unity Shader學習筆記】(四)Shader編程

一、OpenGL與DirectX 這是計算機圖形學中兩個最核心的應用程序接口(API),它們充當了應用程序與顯卡硬件之間的橋梁,讓開發者能夠調用GPU進行圖形渲染和通用計算。 特性維度 OpenGL DirectX 主導公司 Khronos Group (原SGI) Microsoft

程序員之電工基礎-初嘗線掃相機

一、背景 興趣愛好來了,決定研發一個產品。涉及到電工和機械等知識,所以記錄一下相關的基礎知識。本期主題是初嘗線掃相機,雖然又回到了編程,但是對于我來說,硬件集成的經驗不足,缺乏相機、鏡頭的專業知識。…

qt QWebSocket詳解

1、概述 QWebSocket是Qt網絡模塊中的一個類,用于實現WebSocket協議的通信。WebSocket是一種全雙工的通信協議,允許在客戶端和服務器之間建立實時的雙向通信。QWebSocket提供了對WebSocket協議的支持,使得開發者能夠在Qt應用中方便地實現實時…

Java基礎IO流全解析:常用知識點與面試高頻考點匯總

Java基礎IO流全解析:常用知識點與面試高頻考點匯總 前言 IO(Input/Output)流是Java中處理數據傳輸的核心機制,無論是文件操作、網絡通信還是數據持久化,都離不開IO流的身影。對于Java初學者而言,IO流的分類…

PDF.AI-與你的PDF文檔對話

本文轉載自:PDF.AI-與你的PDF文檔對話 - Hello123工具導航 ** 一、🤖 PDF.AI:秒懂 PDF 的智能對話助手 PDF.AI 是一款超實用的AI 文檔分析工具,專門幫你快速搞定各種 PDF 文件。不管多長的合同、報告或論文,你只需上…

微軟出品!這個免費開源工具集獲得了GitHub 123k程序員點贊

大家晚上好,我是顧北,是一名AI應用探索者,當然也是GitHub開源項目收集愛好者。最近我在整理Windows效率工具時,發現了一個讓我一晚上沒睡著覺的開源項目——微軟官方出品的 PowerToys,可謂是徹夜難眠啊。經過我兩個月多…

【開題答辯全過程】以 小眾商戶小程序為例,包含答辯的問題和答案

個人簡介一名14年經驗的資深畢設內行人,語言擅長Java、php、微信小程序、Python、Golang、安卓Android等開發項目包括大數據、深度學習、網站、小程序、安卓、算法。平常會做一些項目定制化開發、代碼講解、答辯教學、文檔編寫、也懂一些降重方面的技巧。感謝大家的…

Vue 3.5 重磅新特性:useTemplateRef 讓模板引用更優雅、更高效!

Vue 3.5 重磅新特性:useTemplateRef 讓模板引用更優雅、更高效! 目錄 前言 什么是 useTemplateRef 傳統 ref 的問題 useTemplateRef 的優勢 基礎用法 進階用法 最佳實踐 遷移指南 性能對比 注意事項 總結 前言 Vue 3.5 帶來了一個激動人心的新特性 useTemplateRef,它徹底革…

uni app 的app端 寫入運行日志到指定文件夾。

uni app 的app 端 寫入指定目錄文件夾。并自動生成當前日期的日志文件。刪除十日前的日志文件其中 writefile.js 代碼如下const {default: logger } require("./logger")var name var url var params var method var resfunction setlog(name, url, params, method)…

桌面應用開發語言與框架選擇指南

桌面應用開發的語言和框架選擇非常豐富,從原生性能到跨平臺解決方案應有盡有。下面我將它們分為幾大類進行詳細介紹,并附上各自的優缺點和適用場景。 一、 原生開發 (Native Development) 原生開發能提供最佳的性能和與操作系統最完美的集成體驗。 1. …

C++知識

文章目錄1.Cmap為什么線程不安全?2.map大量插入會有性能問題,為什么3.set的應用場景4.map set mutiset mutimap unordered_map unordered_set的底層實現、使用場景、優缺點1.Cmap為什么線程不安全? 其實STL中的容器都是線程不安全的,如果想要線程安全…

自學嵌入式第三十四天:網絡編程-TCP

一、UDP用戶數據報收發次數要對應;數據與數據之間有邊界,多次調用收發時都是不同的數據報;接收方的數據大小>發送方的數據大小,如果接受方數據小了則會丟棄未讀的部分,再次調用只會讀下一包數據;二、服務…

Apache IoTDB:國產時序數據庫的崛起與工業物聯網的未來

📑前言 在工業物聯網的浪潮中,數據不再是副產品,而是驅動決策的核心資產。"隨著物聯網、工業互聯網和智能監控的迅猛發展,時序數據正以前所未有的速度爆發。據預測,到2025年全球物聯網設備將達750億臺&#xff0c…

一鍵核驗,安全無憂!手機號三要素詳情版API,為您的業務筑牢身份認證防線

一、什么是手機號三要素核驗API? 手機號三要素核驗API 是一種通過編程接口,實時驗證一條個人身份信息是否與該國運營商登記的實名信息一致的在線服務。 這里的“三要素”特指: 姓名 身份證號碼 手機號碼 核驗過程:用戶提交上述三個…

輕松上手 qData 數據中臺開源版:Docker Compose 助你10分鐘跑起來

說在前面 誰適合看這份指南? 初次接觸 qData,希望快速體驗功能的小伙伴不想折騰復雜環境配置和前端打包的人想用“一鍵啟動”省事體驗完整平臺的用戶 我們已經為你準備好“開箱即用”的完整部署包,包括: ? 前端靜態資源&…

Qt讀寫Excel--QXlsx基本使用

1、概述 Document 類是一個用于操作 XLSX 文件的類,繼承自 QObject。它提供了對 Excel 文件的讀寫操作,包括單元格的讀寫、圖片和圖表的插入、單元格合并、列和行的格式化、數據驗證和條件格式化等功能。此外,它還支持對工作簿和工作表的操作…