噠啦噠啦噠...計算中...計算中...啟動序列 42...
啵啵嗶嗶啵… 機器人自動化中… 此網頁是經由機器人自動翻譯成您的本地語言。某些翻譯可能還不盡完善,我們需要您的幫助!使用頁面底部的按鈕告訴我們本文是否有幫助。 前往英語版本

如何尋找 Linux 檔案

記住特定檔案所在的 Linux 安裝程序可能困難重重而手動搜尋龐大的目錄是很麻煩程序。因此,如何做您不要搜尋 Linux 嗎?但幸運的是,Linux 提供一些非常易於使用的工具,尋找您的整個發佈整個檔案。

遇到問題 入門版-1|媒體-2 |進階-3
所需時間 15 分鐘
相關的產品 Linux 型 VPS 或專屬的伺服器
Linux 型共享主機與啟用 SSH

如何在 Linux 中尋找檔案

尋找命令是用來尋找您的電腦上任何檔案的主要工具。 最基本,尋找執行使用下列語法:

find [path] [flags]

pathflags都選用,因此預設尋找會遞迴傳回的所有檔案中您目前的目錄和子目錄路徑:

./.bashrc
./.ssh
./.ssh/authorized_keys
./.monit.state
./.aptitude
./.aptitude/cache
./.aptitude/config
./.profile
./.psql_history
./.gem
...

尋找名稱

若要尋找特定的名稱使用的檔案-name搜尋文字後面國旗一般。 例如:

find -name foo
./misc/foo

完全名稱 foo 目前目錄中尋找所有的檔案。 在此情況下它我其他目錄中找到只有一個檔案。 使用-iname旗標改為使用區分大小寫的搜尋:

find -iname FoO
./misc/foo

使用星號 (*) 可讓您使用萬用字元搜尋:

find -name foo*
./misc/foobar.txt
./misc/foobar.sh
./misc/foo
./misc/foobar

尋找位置

您目前的目錄工作搜尋通常是強制,可以輕鬆使用來完成後立即尋找命令路徑選項。

例如,整個系統尋找檔案,使用/ path選項:

find / -name foo*
/root/misc/foobar.txt
/root/misc/foobar.sh
/root/misc/foo
/root/misc/foobar
/usr/lib/node_modules/npm/node_modules/semver/foot.js
/usr/share/automake-1.14/am/footer.am
/usr/share/doc/xml-core/examples/foo.postrm
...

您可以縮小搜尋路徑停止運作必要時,在此情況下問根/其他目錄內的相同檔案:

find ~/misc -name foo*
/root/misc/foobar.txt
/root/misc/foobar.sh
/root/misc/foo
/root/misc/foobar

您甚至可以使用多個paths在您要在兩項或更多的特定位置搜尋的命令。 我們在此搜尋根/其他和 /usr/share/doc 目錄中:

find ~/misc /usr/share/doc -name foo*
/root/misc/foobar.txt
/root/misc/foobar.sh
/root/misc/foo
/root/misc/foobar
/usr/share/doc/xml-core/examples/foo.postrm
/usr/share/doc/xml-core/examples/foo.xmlcatalogs
/usr/share/doc/xml-core/examples/foo.postinst
/usr/share/doc/xml-core/examples/foo.prerm
/usr/share/doc/m4/examples/foo

尋找依類型

縮小搜尋您的另一個常見旗標-type可讓您尋找根據 unix 識別所有檔案與相關的檔案。

例如,您可以使用-type d要搜尋的符合條件的目錄旗標:

find / -type d -name foo*
/root/misc/foobar

完整的使用追蹤識別碼清單-type您可以在發現旗標男人頁面但最常見的一些:

  • -type d目錄
  • -type f檔案
  • -type l為符號連結

正在尋找的時間

搜尋檔案根據他們建立或修改的時間可以非常有用的工具來分析記錄檔或變更特定的目錄中。

有三個類別中的時間型搜尋命令: 存取、 變更和修改。 所有三個時間類別也有兩個子類別中來決定您要搜尋 timespan: 分鐘的時間來搜尋和時間來搜尋天內最少。

負值、 正面,或中性可能時間型旗標的數字引數 (n):

  • n搜尋完全符合 n 的時間範圍內。
  • +n時段大於 n 搜尋。
  • -n搜尋時段少於 n。

例如,使用-atime旗標可讓您搜尋的檔案根據上次讀取或寫入檔案的時間。 若要尋找所有 foo 命名所存取不到 1 天前檔案都輸入:

find / -atime -1 -name foo*
/root/misc/foobar.txt
/root/misc/foobar.sh
/root/misc/foo
/root/misc/foobar

若要尋找所有 foo 命名檔案內的最後 45 數分鐘內使用的存取權-amin旗標:

find / -amin -45 -name foo*
/root/misc/foo

您也可以使用-cmin-ctime旗標相同的方式來尋找檔案根據檔案 inode 資料已變更 (通常時檔案已移動到新的位置系統內) 上一次。

移動 foobar.txt 檔案之後就立即之間的所有 foo 命名檔案已變更 last10 分鐘內的搜尋結果:

mv /root/misc/foobar.txt /root/other/foobar.txt
find / -cmin -10 -name foo*
/root/other/foobar.txt

最後一次旗標-mmin-mtime讓您找到根據檔案上次修改的內容的檔案.

使用貓後 > 命令 foobar.txt 檔案中新增一些新文字,現在是位於搜尋已修改在過去 5 分鐘內的檔案時:

cat > ~/other/foobar.txt
This is a new line.
ctrl+c
find / -mmin -5 -name foo*
/root/other/foobar.txt

尋找由檔案內容

如果您想要搜尋的檔案根據檔案中的實際文字內容可能會將結合使用其他 unix 指令尋找命令-exec國旗一般。

例如,由組合-exec使用功能非常強大grep 工具您可以找到所有 foo 命名檔案之前也包含特定文字:

find / -type f -name foo* -exec grep -i "My favorite foods are" /dev/null {} +
/root/misc/foobar.sh:My favorite foods are:
/root/misc/foo:My favorite foods are:
/root/other/foobar.txt:My favorite foods are:

完整的命令的項目鉅但真正的兩種基本區塊只包含:

find / -type f -name foo*

這就是如此目前已在此教學課程,因此在此處我們要搜尋的 typefile 所有檔案名稱開頭 foo 涵蓋尋找命令的基本功能。

-exec grep -i "My favorite foods are" /dev/null {} +

使用新的命令後者半-exec旗標,後面 unix 指令您想要在 thefind 結果上執行。 在此情況下的元件是:

grep -i "My favorite foods are"

這將會搜尋您的檔案的內容 (忽略退回大小寫-i旗標) 文字 「 我最愛的美食是。 」

立即執行相同的命令,但 「 apple 」 改為搜尋我們看看有 apple 列為其中一項最愛的美食只有兩個檔案:

find / -type f -name foo* -exec grep -i "apple" /dev/null {} +
/root/misc/foobar.sh:apple
/root/other/foobar.txt:apple

這是只需使用的簡介-exec在您尋找內 grep 旗標搜尋,它能讓您提供極高一層多樣性和您搜尋的力量。

現在請辦理,尋找這些檔案 !


這篇文章有用嗎?
感謝您提供意見。 若要與客戶服務代表聯絡,請撥打支援中心電話號碼,或使用上方的對話選項。
很高興能幫上忙! 還有什麼可幫您的嗎?
很抱歉有這種情形。 請告訴我們您不了解的部分,或解決方案無法解決您問題的原因。