導航:首頁 > 操作系統 > linux根據文件名查找文件

linux根據文件名查找文件

發布時間:2023-05-22 21:02:17

linux怎樣查找文件

#whereis 查找已經安裝的軟體
在Linux上查找某個文件是一件比較麻煩的事情。畢竟在Linux中需要我們使用專用的「查找」命令來尋找在硬碟上的文件。
Linux下的文件表達格式非常復雜,不象WINDOWS,DOS下都是統一的AAAAAAA.BBB格式
那麼方便查找,在WINDOWS中,只要知道要查找的文件的文件名或者後綴就非常容易
查找到。Linux中查找文件的命令通常為「find」命令,「find」命令能幫助我們在使用,
管理Linux的日常事務中方便的查找出我們需要的文件。對於Linux新手來說,「find」
命令也是了解和學習Linux文件特點的方法。因為Linux發行版本繁多,版本升級很快,
在Linux書籍上往往寫明某個配置文件的所在位置,往往Linux新手按圖索驥還是不能
找到。比如說REDHAT Linux 7.O和REDHAT Linux 7.1中有些重要的配置文件所在的硬
盤位置和文件目錄就有了很大的改變,如果不學會使用「find」命令,那麼在成千上萬
的Linux文件中要找到其中的一個配置文件是相當困難的,筆者在沒有精通「find」命
令之前就吃過這樣的苦頭。好,下面就詳細為大家介紹強大的「find」命令的全部使用
方法和用途。

通過文件名查找法:

這個方法說起來就和在WINDOWS下查找文件一樣容易理解了。如果你把這個文件放在
單個的文件夾裡面,只要使用常見的「ls"命令就能方便的查找出來,那麼使用「find」
命令來查找它就不能給你留下深刻的印象,畢竟「find」命令的強大功能不止這個。如
果知道了某個文件的文件名,而不知道這個文件放到哪個文件夾,甚至是層層套嵌的
文件夾里。舉例說明,假設你忘記了httpd.conf這個文件在系統的哪個目錄下,甚至
在系統的某個地方也不知道,則這是可以使用如下命令:

#find / -name httpd.conf

這個命令語法看起來很容易就明白了,就是直接在find後面寫上 -name,表明要求
系統按照文件名查找,最後寫上httpd.conf這個目標文件名即可。稍等一會系統會
在計算機屏幕上顯示出查找結果列表:

etc/httpd/conf/httpd.conf

這就是httpd.conf這個文件在Linux系統中的完整路徑。查找成功。

如果輸入以上查找命令後系統並沒有顯示出結果,那麼不要以為系統沒有執行
find/ -name httpd.conf命令,而可能是你的系統中沒有安裝Apache伺服器,這時
只要你安裝了Apache Web伺服器,然後再使用find / -name httpd.conf就能找到這
個配置文件了。

無錯誤查找技巧:

在Linux系統中「find」命令是大多數系統用戶都可以使用的命令,並不是ROOT系統管理
員的專利。但是普通用戶使用「find」命令時也有可能遇到這樣的問題,那就是Linux系
統中系統管理員ROOT可以把某些文件目錄設置成禁止訪問模式。這樣普通用戶就沒有
許可權用「find」命令來查詢這些目錄或者文件。當普通用戶使用「find」命令來查詢這些
文件目錄是,往往會出現"Permissiondenied."(禁止訪問)字樣。系統將無法查詢到
你想要的文件。為了避免這樣的錯誤,我們可是使用轉移錯誤提示的方法嘗試著查找
文件,輸入
find / -name access_log 2>/dev/null

這個方法是把查找錯誤提示轉移到特定的目錄中去。系統執行這個命令後,遇到錯誤
的信息就直接輸送到stderrstream 2 中,access_log 2就是表明系統將把錯誤信息輸
送到stderrstream 2中,/dev/null是一個特殊的文件,表明空的或者錯誤的信息,這
樣查詢到的錯誤信息將被轉移了,不會再顯示了。

在Linux系統查找文件也會遇到這樣一個實際問題。如果我們在整個硬碟,這個系統中
查找某個文件就要花費相當長的一段時間,特別是大型Linux系統和容量較大的硬碟,
文件放在套嵌很深的目錄中的時候。如果我們知道了這個文件存放在某個大的目錄中,
那麼只要在這個目錄中往下找就能節省很多時間了。使用find /etc -name httpd.conf
就可以解決這個問題。上面的命令就是表示在etc目錄中查詢httpd.conf這個文件。
這里再說明一下「/ 」這個函數符號的含義,如果輸入 「find/ 」就是表示要求Linux系
統在整個ROOT目錄下查找文件,也就是在整個硬碟上查找文件,而「find/etc」就是只
在 etc目錄下查找文件。因為「find/etc」表示只在etc目錄下查找文件,所以查找的
速度就相應要快很多了。

根據部分文件名查找方法:

這個方法和在WINDOWS中查找已知的文件名方法是一樣的。不過在Linux中根據部分文
件名查找文件的方法要比在WINDOWS中的同類查找方法要強大得多。例如我們知道某個
文件包含有srm這3個字母,那麼要找到系統中所有包含有這3個字母的文件是可以實現
的,輸入:

find /etc -name '*srm*'

這個命令表明了Linux系統將在/etc整個目錄中查找所有的包含有srm這3個字母的文件,
比如 absrmyz, tibc.srm等等符合條件的文件都能顯示出來。如果你還知道這個文件
是由srm 這3個字母打頭的,那麼我們還可以省略最前面的星號,命令如下:

find/etc -name 'srm*'

這是只有像srmyz 這樣的文件才被查找出來,象absrmyz或者 absrm這樣的文件都不符
合要求,不被顯示,這樣查找文件的效率和可靠性就大大增強了。

根據文件的特徵查詢方法:

如果只知道某個文件的大小,修改日期等特徵也可以使用「find」命令查找出來,這和
WINDOWS系統中的"搜索"功能是基本相同的。在微軟的"搜索"中WINDOWS中的"搜索助理"
使得搜索文件和文件夾、列印機、用戶以及網路中的其他計算機更加容易。它甚至使在
Internet 上搜索更加容易。"搜索助理"還包括一個索引服務,該服務維護了計算機中
所有文件的索引,使得搜索速度更快。使用"搜索助理"時,用戶可以指定多個搜索標准。
例如,用戶可以按名稱、類型及大小搜索文件和文件夾。用戶甚至可以搜索包含特定文
本的文件。如果用戶正使用 Active Directory,這時還可以搜索帶有特定名稱或位置的
列印機。

例如我們知道一個Linux文件大小為1,500 bytes,那麼我們可是使用如下命令來查詢
find / -size 1500c,字元 c 表明這個要查找的文件的大小是以bytes為單位。如果
我們連這個文件的具體大小都不知道,那麼在Linux中還可以進行模糊查找方式來解決。
例如我們輸入find/ -size +10000000c 這個命令,則標明我們指定系統在根目錄中查找
出大於10000000位元組的文件並顯示出來。命令中的「+」是表示要求系統只列出大於指定
大小的文件,而使用「-」則表示要求系統列出小於指定大小的文件。下面的列表就是在
Linux使用不同「 find"命令後系統所要作出的查找動作,從中我們很容易看出在Linux
中使用「find"命令的方式是很多的,「 find"命令查找文件只要靈活應用,絲毫不必在
WINDOWS中查找能力差。

find / -amin -10 # 查找在系統中最後10分鍾訪問的文件
find / -atime -2 # 查找在系統中最後48小時訪問的文件
find / -empty # 查找在系統中為空的文件或者文件夾
find / -group cat # 查找在系統中屬於 groupcat的文件
find / -mmin -5 # 查找在系統中最後5分鍾里修改過的文件
find / -mtime -1 #查找在系統中最後24小時里修改過的文件
find / -nouser #查找在系統中屬於作廢用戶的文件
find / -user fred #查找在系統中屬於FRED這個用戶的文件

下面的列表就是對find命令所可以指定文件的特徵進行查找的部分條件。在這里並沒有
列舉所有的查找條件,參考有關Linux有關書籍可以知道所有find命令的查找函數。
-amin n
查找系統中最後N分鍾訪問的文件
-atime n
查找系統中最後n*24小時訪問的文件
-cmin n
查找系統中最後N分鍾被改變狀態的文件
-ctime n
查找系統中最後n*24小時被改變狀態的文件
-empty
查找系統中空白的文件,或空白的文件目錄,或目錄中沒有子目錄的文件夾
-false
查找系統中總是錯誤的文件
-fstype type
查找系統中存在於指定文件系統的文件,例如:ext2 .
-gid n
查找系統中文件數字組 ID 為 n的文件
-group gname
查找系統中文件屬於gnam文件組,並且指定組和ID的文件

Find命令的控制選項說明:

Find命令也提供給用戶一些特有的選項來控制查找操作。下表就是我們總結出的
最基本,最常用的find命令的控制選項及其用法。
選項
用途描述
-daystart
.測試系統從今天開始24小時以內的文件,用法類似-amin
-depth
使用深度級別的查找過程方式,在某層指定目錄中優先查找文件內容
-follow
遵循通配符鏈接方式查找; 另外,也可忽略通配符鏈接方式查詢
-help
顯示命令摘要
-maxdepth levels
在某個層次的目錄中按照遞減方法查找
-mount
不在文件系統目錄中查找, 用法類似 -xdev.
-noleaf
禁止在非UNUX文件系統,MS-DOS系統,CD-ROM文件系統中進行最優化查找
-version
列印版本數字

使用-follow選項後,find命令則遵循通配符鏈接方式進行查找,除非你指定這個選項,
否則一般情況下find命令將忽略通配符鏈接方式進行文件查找。

-maxdepth選項的作用就是限制find命令在目錄中按照遞減方式查找文件的時候搜索文

件超過某個級別或者搜索過多的目錄,這樣導致查找速度變慢,查找花費的時間過多。
例如,我們要在當前(.)目錄技巧子目錄中查找一個名叫fred的文件,我們可以使用如
下命令

find . -maxdepth 2 -name fred

假如這個fred文件在./sub1/fred目錄中,那麼這個命令就會直接定位這個文件,查找
很容易成功。假如,這個文件在./sub1/sub2/fred目錄中,那麼這個命令就無法查找
到。因為前面已經給find命令在目錄中最大的查詢目錄級別為2,只能查找2層目錄下的
文件。這樣做的目的就是為了讓find命令更加精確的定位文件,如果你已經知道了某個
文件大概所在的文件目錄級數,那麼加入-maxdepth n 就很快的能在指定目錄中查找
成功。

使用混合查找方式查找文件

find命令可以使用混合查找的方法,例如我們想在/tmp目錄中查找大於100000000字
節並且在48小時內修改的某個文件,我們可以使用-and 來把兩個查找選項鏈接起來
組合成一個混合的查找方式。

find /tmp -size +10000000c -and -mtime +2

學習過計算機語言的朋友都知道,在計算機語言里,使用and ,or 分別表示「與」和「或」
的關系。在Linux系統的查找命令中一樣通用。

還有這樣的例子,

find / -user fred -or -user george

我們可以解釋為在/tmp目錄中查找屬於fred或者george這兩個用戶的文件。

在find命令中還可以使用「非」的關系來查找文件,如果我們要在/tmp目錄中查找所有
不屬於panda的文件,使用一個簡單的

find /tmp ! -user panda

命令就可以解決了。很簡單。

查找並顯示文件的方法

查找到某個文件是我們的目的,我們更想知道查找到的文件的詳細信息和屬性,如果
我們採取現查找文件,在使用LS命令來查看文件信息是相當繁瑣的,現在我們也可以
把這兩個命令結合起來使用。

find / -name "httpd.conf" -ls

系統查找到httpd.conf文件後立即在屏幕上顯示httpd.conf文件信息。

12063 34 -rw-r--r-- 1 root root 33545 Dec 30 15:36 /etc/httpd/conf/httpd.conf

下面的表格就是一些常用的查找文件並顯示文件信息的參數和使用方法

選項
用途描述
-exec command;
查找並執行命令
-fprint file
列印文件完整文件名
-fprint0 file
列印文件完整文件名包括空的文件
-fprintf file format
列印文件格式
-ok command;
給用戶命令執行操作,根據用戶的Y 確認輸入執行
-printf format
列印文件格式
-ls
列印同種文件格式的文件.

總結:到這里為止我們已經學習了這名多關於find命令的使用方法,也列出了很多常用的find命令的選項,如果我們能熟練掌握在Linux中find命令的使用方法,那麼在Linux中查找文件也不是一件困難的事情。
了解更多開源相關,去LUPA社區看看吧。

❷ 如何在Linux下查找文件內容包含某個特定字元串的文件

概述

使用grep可以查找包含指定字元串的文件

步驟詳解

格式:

grep 「要查找的字元串」 文件名

例子:

grep "192.168.0.1" /etc

文件名可以使用基本正則表達式(BRE),例如, 查找test目錄下的所有文件,是否包含www.tycode.com字元串。

grep 「www.tycode.com」 /root/zzh/test/*

幾個常用的查詢指令:

1、查找時不區分字元串的大小寫

grep -i 「查找的字元串」 文件名

2、查找時使用正則表達式,匹配符合的字元串

grep -e 「正則表達式」 文件名

3、查找不匹配指定字元串的行:

grep -v 「被查找的字元串」 文件名

4、查找時顯示被查找字元串所在的行數

grep -n 「查找的字元串」 文件名

❸ 知識分享之Linux——find文件搜索命令

日常我們開發時,我們會遇到各種各樣的奇奇怪怪的問題(踩坑o(╯□╰)o),這個常見問題系列就是我日常遇到的一些問題的記錄文章系列,這里整理匯總後分享給大家,讓其還在深坑中的小夥伴有繩索能爬出來。
同時在這里也歡迎大家把自己遇到的問題留言或私信給我,我看看其能否給大家解決。

在Linux中我們經常需要查找一些文件或者根據文件內容進行查找到底在哪些文件裡面,這時就需要用到本節要講到的find命令了,這個命令可以讓我們進行查找到想要的文件,話不多說下面直接開始本節的干貨。

1、查找當前目錄下的指定文件(當前目錄向下無限極)

2、全文搜索符合於文件名的

3、不區分大小寫文件名的搜索

4、列出當前目錄及子目錄下的所有文件

5、查找近10天內被更新過的文件(-ctime 天 -cmin分鍾 )

6、根據文件內容查找文件

7、在特定文件類型下根據文件內容查找文件

以上就是我整理的常用的查詢文件命令,整理出來供大家一起使用,有需要補充的歡迎在留言區進行留言補充,謝謝大家~~~

❹ Linux中在當前目錄下查找某個文件。

1、打開shell連接工具,連接上伺服器,pwd查看當前目錄,一般進來默認在主目錄下。

❺ linux命令 find找一個文件只在當前目錄找嗎

find / -name 文件名x0dx0ax0dx0aLinux下find命令用法x0dx0ax0dx0a通過文件名查找法: x0dx0a這個方法說起來就和在WINDOWS下查找文件一樣容易理解了。如果你把這個文件放在單個的文件夾裡面,只要使用常見的「ls"命令就能方便的查找出來,那麼使用「find」命令來查找它就不能給你留下深刻的印象,畢竟「find」命令的強大功能不止這 個。如果知道了某個文件的文件名,而不知道這個文件放到哪個文件夾,甚至是層層套嵌的文件夾里。舉例說明,假設你忘記了httpd.conf這個文件在系統的哪個目錄下,甚至在系統的某個地方也不知道,則這是可以使用如下命令: x0dx0afind / -name httpd.conf x0dx0ax0dx0a這個命令語法看起來很容易就明白了,就是直接在find後面寫上 -name,表明要求系統按照文件名查找,最後寫上httpd.conf這個目標文件名即可。稍等一會系統會在計算機屏幕上顯示出查找結果列表: x0dx0aetc/httpd/conf/httpd.conf x0dx0ax0dx0a這就是httpd.conf這個文件在Linux系統中的完整路徑。查找成功。 x0dx0a如果輸入以上查找命令後系統並沒有顯示出結 果,那麼不要以為系統沒有執行find/ -name httpd.conf命令,而可能是你的系統中沒有安裝Apache伺服器,這時只要你安裝了Apache Web伺服器,然後再使用find / -name httpd.conf就能找到這個配置文件了。 x0dx0ax0dx0a無錯誤查找技巧: x0dx0a在Linux系統中「find」命令是大多數系統用戶都可以使用的命令,並不是ROOT系統管理員的專利。但是普通用戶使用「find」命令時也有可能遇到這樣的問題,那就是Linux系統中系統管理員ROOT可以把某些文件目錄設置成禁止訪問模式。這樣普通用戶就沒有許可權用「find」命令來查詢這些目錄或者文件。當普通用戶使用「find」命令來 查詢這些文件目錄是,往往會出現"Permissiondenied."(禁止訪問)字樣。系統將無法查詢到你想要的文件。為了避免這樣的錯誤,我們可是使用轉移錯誤提示的方法嘗試著查找文件,輸入 x0dx0afind / -name access_log 2>/dev/null x0dx0ax0dx0a這個方法是把查找錯誤提示轉移到特定的目錄中去。系統執行這個命令後,遇到錯誤的信息就直接輸送到stderrstream 2 中,access_log 2就是表明系統將把錯誤信息輸送到stderrstream 2中,/dev/null是一個特殊的文件,表明空的或者錯誤的信息,這樣查詢到的錯誤信息將被轉移了,不會再顯示了。 x0dx0ax0dx0a在Linux系統查找文件也會遇到這樣一個實際問題。如果我們在整個硬碟,這個系統中查找某個文件就要花費相當長的一段時間,特別是大型Linux系統和容量較大的硬 盤,文件放在套嵌很深的目錄中的時候。如果我們知道了這個文件存放在某個大的目錄中,那麼只要在這個目錄中往下找就能節省很多時間了。使用find /etc -name httpd.conf 就可以解決這個問題。上面的命令就是表示在etc目錄中查詢httpd.conf這個文件。這里再說明一下「/ 」這個函數符號的含義,如果輸入 「find/ 」就是表示要求Linux系統在整個ROOT目錄下查找文件,也就是在整個硬碟上查找文件,而「find/etc」就是只在 etc目錄下查找文件。因為「find/etc」表示只在etc目錄下查找文件,所以查找的速度就相應要快很多了。 x0dx0ax0dx0a根據部分文件名查找方法: x0dx0a這個方法和在WINDOWS中查找已知的文件名方法是一樣的。不過在Linux中根據部分文件名查找文件的方法要比在WINDOWS中的同類查找方法要強大得多。例如我們知道某個文件包含有srm這3個字母,那麼要找到系統中所有包含有這3個字母的文件是可以實現的,輸入: x0dx0afind /etc -name '*srm*' x0dx0ax0dx0a這個命令表明了Linux系統將在/etc整個目錄中查找所有的包含有srm這3個字母的文 件,比如 absrmyz, tibc.srm等等符合條件的文件都能顯示出來。如果你還知道這個文件是由srm 這3個字母打頭的,那麼我們還可以省略最前面的星號,命令如下: x0dx0afind/etc -name 'srm*' x0dx0ax0dx0a這是只有像 srmyz 這樣的文件才被查找出來,象absrmyz或者 absrm這樣的文件都不符合要求,不被顯示,這樣查找文件的效率和可靠性就大大增強了。 x0dx0ax0dx0a根據文件的特徵查詢方法: x0dx0a如果只知道某個文件的大小,修改日期等特徵也可以使用「find」命令查找出來,這和WINDOWS系統中的"搜索"功 能是基本相同的。在微軟的"搜索"中WINDOWS中的"搜索助理"使得搜索文件和文件夾、列印機、用戶以及網路中的其他計算機更加容易。它甚至使在 Internet 上搜索更加容易。"搜索助理"還包括一個索引服務,該服務維護了計算機中所有文件的索引,使得搜索速度更快。使用"搜索助理"時,用戶可以指定多個搜索標 准。例如,用戶可以按名稱、類型及大小搜索文件和文件夾。用戶甚至可以搜索包含特定文本的文件。如果用戶正使用 Active Directory,這時還可以搜索帶有特定名稱或位置的列印機。 x0dx0ax0dx0a例如我們知道一個Linux文件大小為1,500 bytes,那麼我們可是使用如下命令來查詢find / -size 1500c,字元 c 表明這個要查找的文件的大小是以bytes為單位。如果我們連這個文件的具體大小都不知道,那麼在Linux中還可以進行模糊查找方式來解決。例如我們輸 入find/ -size +10000000c 這個命令,則標明我們指定系統在根目錄中查找出大於10000000位元組的文件並顯示出來。命令中的「+」是表示要求系統只列出大於指定大小的文件,而使 用「-」則表示要求系統列出小於指定大小的文件。下面的列表就是在Linux使用不同「 find"命令後系統所要作出的查找動作,從中我們很容易看出在Linux中使用「find"命令的方式是很多的,「 find"命令查找文件只要靈活應用,絲毫不必在WINDOWS中查找能力差。 x0dx0ax0dx0afind / -amin -10 # 查找在系統中最後10分鍾訪問的文件 x0dx0afind / -atime -2 # 查找在系統中最後48小時訪問的文件 x0dx0afind / -empty # 查找在系統中為空的文件或者文件夾 x0dx0afind / -group cat # 查找在系統中屬於 groupcat的文件 x0dx0afind / -mmin -5 # 查找在系統中最後5分鍾里修改過的文件 x0dx0afind / -mtime -1 #查找在系統中最後24小時里修改過的文件 x0dx0afind / -nouser #查找在系統中屬於作廢用戶的文件 x0dx0afind / -user fred #查找在系統中屬於FRED這個用戶的文件 x0dx0ax0dx0a下面的列表就是對find命令所可以指定文件的特徵進行查找的部分條件。在這里並沒有列舉所有的查找條件,參考有關Linux有關書籍可以知道所有find命令的查找函數。 x0dx0ax0dx0a-amin n x0dx0a查找系統中最後N分鍾訪問的文件 x0dx0a-atime n x0dx0a查找系統中最後n*24小時訪問的文件 x0dx0a-cmin n x0dx0a查找系統中最後N分鍾被改變狀態的文件 x0dx0a-ctime n x0dx0a查找系統中最後n*24小時被改變狀態的文件 x0dx0a-empty x0dx0a查找系統中 空白的文件,或空白的文件目錄,或目錄中沒有子目錄的文件夾 x0dx0a-false x0dx0a查找系統中總是錯誤的文件 x0dx0a-fstype typex0dx0a查找系統中存在於指定文件系統的文件,例如:ext2 . x0dx0a-gid n x0dx0a查找系統中文件數字組 ID 為 n的文件 x0dx0a-group gname x0dx0a查找系統中文件屬於gnam文件組,並且指定組和ID的文件 x0dx0ax0dx0aFind命令的控制選項說明: x0dx0ax0dx0aFind 命令也提供給用戶一些特有的選項來控制查找操作。下表就是我們總結出的最基本,最常用的find命令的控制選項及其用法。 x0dx0ax0dx0a 選項 用途描 述 x0dx0a-daystart 測試系統從今天開始24小時以內的文件,用法類似-amin x0dx0a-depth 使用深度級別的 查找過程方式,在某層指定目錄中優先查找文件內容 x0dx0a-follow 遵循通配符鏈接方式查找; 另外,也可忽略通配符鏈接方式查詢 x0dx0a-help 顯示命令摘要 x0dx0a-maxdepth levels 在某個層次的目錄中按照遞減方法查找 x0dx0a-mount 不在文件系統目錄中查找,用法類似 -xdev. x0dx0a-noleaf 禁止在非UNUX文件系統,MS-DOS系統,CD-ROM文件系統中 進行最優化查找 x0dx0a-version 列印版本數字 x0dx0ax0dx0a使用-follow選項後,find命令則遵循通配符鏈接方式進行查找,除非你指定這個選項,否則一般情況下find命令將忽略通配符鏈接方式進行文件查找。 x0dx0ax0dx0a-maxdepth選項的作用就是限制find命令在目錄中按照遞減方式查找文件的時候搜索文件超過某個級別或者搜索過多的目錄,這樣導致查找速度變慢,查找花費的時間過多。例如,我們要在當前(.)目錄的子目錄中查找一個名叫fred的文件,我們可以使用如下命令 x0dx0afind . -maxdepth 2 -name fred x0dx0ax0dx0a假如這個fred文件在./sub1/fred目錄中,那麼這個命令就會直接定位這個文件,查找很容易成功。假如,這個文件在./sub1/sub2 /fred目錄中,那麼這個命令就無法查找到。因為前面已經給find命令在目錄中最大的查詢目錄級別為2,只能查找2層目錄下的文件。這樣做的目的就是 為了讓find命令更加精確的定位文件,如果你已經知道了某個文件大概所在的文件目錄級數,那麼加入-maxdepth n 就很快的能在指定目錄中查找成功。 x0dx0ax0dx0a使用混合查找方式查找文件 x0dx0afind命令可以使用混合查找的方法,例如我們想在/tmp目錄 中查找大於100000000位元組並且在48小時內修改的某個文件,我們可以使用-and 來把兩個查找選項鏈接起來組合成一個混合的查找方式。 x0dx0afind /tmp -size +10000000c -and -mtime +2 x0dx0ax0dx0a學習過計算機語言的朋友都知道,在計算機語言里,使用 and ,or 分別表示「與」和「或」的關系。在Linux系統的查找命令中一樣通用。 x0dx0a還有這樣的例子, x0dx0afind / -user fred -or -user george x0dx0ax0dx0a我們可以解釋為在/tmp目錄中查找屬於fred或者george這兩個用戶的文件。 x0dx0a在 find命令中還可以使用「非」的關系來查找文件,如果我們要在/tmp目錄中查找所有不屬於panda的文件,使用一個簡單的 x0dx0afind /tmp ! -user panda x0dx0a命令就可以解決了。很簡單。 x0dx0ax0dx0a查找並顯示文件的方法 x0dx0a查找到某個文件是我們的目 的,我們更想知道查找到的文件的詳細信息和屬性,如果我們採取現查找文件,再使用ls命令來查看文件信息是相當繁瑣的,現在我們也可以把這兩個命令結合起來使用。 x0dx0afind / -name "httpd.conf" -ls x0dx0ax0dx0a系統查找到httpd.conf文件後立即在屏幕上顯 示httpd.conf文件信息。 x0dx0a12063 34 -rw-r--r-- 1 root root 33545 Dec 30 15:36 /etc/httpd/conf/httpd.conf x0dx0ax0dx0a下面的表格就是一些常用的查找文件並顯示文件信息的參數和使用方法 x0dx0ax0dx0a選 項 用途描述 x0dx0a-exec command; 查找並執行命令 x0dx0a-fprint file 列印文件完整文件名 x0dx0a-fprint0 file 列印文件完整文件名包括空的文件 x0dx0a-fprintf file format 列印文件格式 x0dx0a-ok command; 給用戶命令執行操作,根據用戶的Y 確認輸入執行 x0dx0a-printf format 列印文件格式 x0dx0a-ls 列印同種文件格式的文件. x0dx0ax0dx0a總結:到這里為止我們已經學習了這名多關於find命令的使用 方法,也列出了很多常用的find命令的選項,如果我們能熟練掌握在Linux中find命令的使用方法,那麼在Linux中查找文件也不是一件困難的事 情。

❻ Linux必須學會的60個命令:文件處理1

Linux系統信息存放在文件里,文件與普通的公務文件類似。每個文件都有自己的褲悔名字、內容、存放地址及其它一些管理信息,如文件的用戶、文戚純姿件的大小等。文件可以是一封信、一個通訊錄,或者是程序的源語句、程序的數據,甚至可以包括可執行的程序和其它非正文內容。Linux文件系統具有良好的結構,系統提供了很多文件處理程序。這里主要介紹常用的文件處理命令。

file 1.作用file通過探測文件內容判斷文件類型,使用許可權是所有用戶。

2.格式file [options]文件名3.[options]主要參數-v:在標准輸出後顯示版本信息,並且退出。

-z:探測壓縮過的文件類型。

-L:允許符合連接。

-f name:從文件namefile中讀取要分析的文件名列表。

4.簡單說明使用file命令可以知道某個文件究竟是二進制(ELF格式)的可執行文件,還是Shell Script文件,或者是其它的什麼格式。file能識別的文件類型有目錄、Shell腳本、英文文本、二進制可執行文件、C語言源文件、文本文件、DOS的可執行文件。

5.應用實例如果我們看到一個沒有後綴的文件grap,可以使用下面命令:

$ file grap grap:English text 此時系統顯示這是一個英文文本文件。需要說明的是,file命令不能探測包括圖形、音頻、視頻等多媒體文件類型。

mkdir 1.作用mkdir命令的作用是建立名稱為dirname的子目錄,與MS DOS下的md命令類似,它的使用許可權是所有用戶。

2.格式mkdir [options]目錄名3.[options]主要參數-m,--mode=模式:設定許可權<模式>,與chmod類似。

-p,--parents:需要時創建上層目錄;如果目錄早已存在,則不當作錯誤。

-v,--verbose:每次創建新目錄都顯示信息。

--version:顯示版本信息後離開。

4.應用實例在進行目錄創建時可以設置目錄的許可權,此時使用的參數是「-m」。假設要創建的目錄名是「tsk」,讓所有用戶都有rwx(即讀、寫、執行的許可權),那麼可以使用以下命令:

$ mkdir-m 777 tsk grep 1.作用grep命令可以指定文件中搜索特定的內容,並將含有這些內容的行標准輸出。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用許可權是所有用戶。

2.格式grep [options] 3.主要參數[options]主要參數:

-c:只輸出匹配行的計數。

-I:不區分大小寫(只適用於單字元)。

-h:查詢多文件時不顯示文件名。

-l:查詢多文件時只輸出包含匹配字元的文件名。

-n:顯示匹配行及行號。

-s:不顯示不存在或無高絕匹配文本的錯誤信息。

-v:顯示不包含匹配文本的所有行。

pattern正則表達式主要參數:

:忽略正則表達式中特殊字元的原有含義。

^:匹配正則表達式的開始行。

$:匹配正則表達式的結束行。

<:從匹配正則表達式的行開始。

>:到匹配正則表達式的行結束。

[ ]:單個字元,如[A]即A符合要求。

[ - ]:范圍,如[A-Z],即A、B、C一直到Z都符合要求。

。:所有的單個字元。

*:有字元,長度可以為0。

正則表達式是Linux/Unix系統中非常重要的概念。正則表達式(也稱為「regex」或「regexp」)是一個可以描述一類字元串的模式(Pattern)。如果一個字元串可以用某個正則表達式來描述,我們就說這個字元和該正則表達式匹配(Match)。這和DOS中用戶可以使用通配符「*」代表任意字元類似。在Linux系統上,正則表達式通常被用來查找文本的模式,以及對文本執行「搜索-替換」操作和其它功能。4.應用實例查詢DNS服務是日常工作之一,這意味著要維護覆蓋不同網路的大量IP地址。有時IP地址會超過2000個。如果要查看nnn.nnn網路地址,但是卻忘了第二部分中的其餘部分,只知到有兩個句點,例如nnn nn..。要抽取其中所有nnn.nnn IP地址,使用[0-9 ]{3 }.[0-0{3}。含義是任意數字出現3次,後跟句點,接著是任意數字出現3次,後跟句點。

$grep '[0-9 ]{3 }.[0-0{3}' ipfile 補充說明,grep家族還包括fgrep和egrep。fgrep是fix grep,允許查找字元串而不是一個模式;egrep是擴展grep,支持基本及擴展的正則表達式,但不支持q模式范圍的應用及與之相對應的一些更加規范的模式。

dd 1.作用dd命令用來復制文件,並根據參數將數據轉換和格式化。

2.格式dd [options] 3.[opitions]主要參數bs=位元組:強迫ibs=<位元組>及obs=<位元組>。

cbs=位元組:每次轉換指定的<位元組>。

conv=關鍵字:根據以逗號分隔的關鍵字表示的方式來轉換文件。

count=塊數目:只復制指定<塊數目>的輸入數據。

ibs=位元組:每次讀取指定的<位元組>。

if=文件:讀取<文件>內容,而非標准輸入的數據。

obs=位元組:每次寫入指定的<位元組>。

of=文件:將數據寫入<文件>,而不在標准輸出顯示。

seek=塊數目:先略過以obs為單位的指定<塊數目>的輸出數據。

skip=塊數目:先略過以ibs為單位的指定<塊數目>的輸入數據。

4.應用實例

dd命令常常用來製作Linux啟動盤。先找一個可引導內核,令它的根設備指向正確的根分區,然後使用dd命令將其寫入軟盤:

$ rdev vmlinuz /dev/hda $dd if=vmlinuz of=/dev/fd0

上面代碼說明,使用rdev命令將可引導內核vmlinuz中的根設備指向/dev/hda,請把「hda」換成自己的根分區,接下來用dd命令將該內核寫入軟盤。

find 1.作用find命令的作用是在目錄中搜索文件,它的使用許可權是所有用戶。

2.格式find [path][options][expression] path指定目錄路徑,系統從這里開始沿著目錄樹向下查找文件。它是一個路徑列表,相互用空格分離,如果不寫path,那麼默認為當前目錄。

3.主要參數[options]參數:

-depth:使用深度級別的查找過程方式,在某層指定目錄中優先查找文件內容。

-maxdepth levels:表示至多查找到開始目錄的第level層子目錄。level是一個非負數,如果level是0的話表示僅在當前目錄中查找。

-mindepth levels:表示至少查找到開始目錄的第level層子目錄。

-mount:不在其它文件系統(如Msdos、Vfat等)的目錄和文件中查找。

-version:列印版本。

[expression]是匹配表達式,是find命令接受的表達式,find命令的所有操作都是針對表達式的。它的參數非常多,這里只介紹一些常用的參數。

—name:支持統配符*和?。

-atime n:搜索在過去n天讀取過的文件。

-ctime n:搜索在過去n天修改過的文件。

-group grpoupname:搜索所有組為grpoupname的文件。

-user用戶名:搜索所有文件屬主為用戶名(ID或名稱)的文件。

-size n:搜索文件大小是n個block的文件。

-print:輸出搜索結果,並且列印。

4.應用技巧find命令查找文件的幾種方法:

(1)根據文件名查找例如,我們想要查找一個文件名是lilo.conf的文件,可以使用如下命令:

find /-name lilo.conf find命令後的「/」表示搜索整個硬碟。

(2)快速查找文件根據文件名查找文件會遇到一個實際問題,就是要花費相當長的一段時間,特別是大型Linux文件系統和大容量硬碟文件放在很深的子目錄中時。如果我們知道了這個文件存放在某個目錄中,那麼只要在這個目錄中往下尋找就能節省很多時間。比如smb.conf文件,從它的文件後綴「.conf」可以判斷這是一個配置文件,那麼它應該在/etc目錄內,此時可以使用下面命令:

find /etc-name smb.conf 這樣,使用「快速查找文件」方式可以縮短時間。

(3)根據部分文件名查找方法有時我們知道只某個文件包含有abvd這4個字,那麼要查找系統中所有包含有這4個字元的文件可以輸入下面命令:

find /-name '*abvd*'

輸入這個命令以後,Linux系統會將在/目錄中查找所有的包含有abvd這4個字元的文件(其中*是通配符),比如abvdrmyz等符合條件的文件都能顯示出來。

(4)使用混合查找方式查找文件

find命令可以使用混合查找的方法,例如,我們想在/etc目錄中查找大於500000位元組,並且在24小時內修改的某個文件,則可以使用-and (與)把兩個查找參數鏈接起來組合成一個混合的查找方式。

find /etc -size +500000c -and -mtime +1

mv 1.作用mv命令用來為文件或目錄改名,或者將文件由一個目錄移入另一個目錄中,它的使用許可權是所有用戶。該命令如同DOS命令中的ren和move的組合。

2.格式mv[options]源文件或目錄目標文件或目錄3.[options]主要參數-i:交互方式操作。如果mv操作將導致對已存在的目標文件的覆蓋,此時系統詢問是否重寫,要求用戶回答「y」或「n」,這樣可以避免誤覆蓋文件。

-f:禁止交互操作。mv操作要覆蓋某個已有的目標文件時不給任何指示,指定此參數後i參數將不再起作用。

4.應用實例(1)將/usr/cbu中的所有文件移到當前目錄(用「.」表示)中:

$ mv /usr/cbu/ * . (2)將文件cjh.txt重命名為wjz.txt:

$ mv cjh.txt wjz.txtls 1.作用ls命令用於顯示目錄內容,類似DOS下的dir命令,它的使用許可權是所有用戶。

2.格式ls [options][filename] 3.options主要參數-a,--all:不隱藏任何以「.」字元開始的項目。

-A,--almost-all:列出除了「.」及「..」以外的任何項目。

-b,--escape:以八進制溢出序列表示不可列印的字元。

--block-size=大小:塊以指定<大小>的位元組為單位。-B,--ignore-backups:不列出任何以~字元結束的項目。

-f:不進行排序,-aU參數生效,-lst參數失效。

-F,--classify:加上文件類型的指示符號(*/=@|其中一個)。

-g:like-l, but do not list owner。

-G,--no-group:inhibit display of group information。

-i,--inode:列出每個文件的inode號。

-I,--ignore=樣式:不印出任何符合Shell萬用字元<樣式>的項目。

-k:即--block-size=1K。

-l:使用較長格式列出信息。

-L,--dereference:當顯示符號鏈接的文件信息時,顯示符號鏈接所指示的對象,而並非符號鏈接本身的信息。

-m:所有項目以逗號分隔,並填滿整行行寬。

-n,--numeric-uid-gid:類似-l,但列出UID及GID號。

-N,--literal:列出未經處理的項目名稱,例如不特別處理控制字元。

-p,--file-type:加上文件類型的指示符號(/=@|其中一個)。

-Q,--quote-name:將項目名稱括上雙引號。

-r,--reverse:依相反次序排列。

-R,--recursive:同時列出所有子目錄層。

-s,--size:以塊大小為序。

diff 1.作用diff命令用於兩個文件之間的比較,並指出兩者的不同,它的使用許可權是所有用戶。

❼ Linux下文件搜索、查找、查看命令

1、最強大的搜索命令:find 查找各種文件的命令
2、在文件資料中查找文件:locate
3、搜索命令所在的目錄及別名信息:which
4、搜索命令所在的目錄及幫助文檔路徑:whereis
5、在文件中搜尋字元串匹配的行並輸出:grep
6、分頁顯示一個文件或任何輸出結果:more
7、分頁顯示一個文件並且可以回頭:less
8、指定顯示前多少行文件內容:head
9、指定顯示文件後多少行內容:tail
10、查看一個文件:cat
11、查看文件內容多少字元多少行多少位元組:wc
12、排序文件內容:sort

一、根據 文件或目錄名稱 搜索
find 【搜索目錄】【-name或者-iname】【搜索字元】:-name和-iname的區別一個區分大小寫,一個不區分大小寫
eg:在/etc 目錄下搜索名字為init的文件或目錄
①、find /etc -name init (精準搜索,名字必須為 init 才能搜索的到)
②、find /etc -iname init (精準搜索,名字必須為 init或者有字母大寫也能搜索的到)
③、find /etc -name *init (模糊搜索,以 init 結尾的文件或目錄名)
④、find /etc -name init??? (模糊搜索,? 表示單個字元,即搜索到 init___)
二、根據 文件大小 搜索
eg:在根目錄下查找大於 100M 的文件
find / -size +204800
這里 +n 表示大於,-n 表示小於,n 表示等於
1 數據塊 == 512 位元組 0.5KB,也就是1KB等於2數據塊
100MB == 102400KB204800數據塊
三、根據 所有者和所屬組 搜索
①、在home目錄下查詢所屬組為 root 的文件
find /home -group root
②、在home目錄下查詢所有者為 root 的文件
find /home -user root
四、根據 時間屬性 搜索
find 【路徑】【選項】【時間】
選項有下面三種:-amin 訪問時間
-cmin 文件屬性被更改
-mmin 文件內容被修改
時間:+n,-n,n分別表示超過n分鍾,n分鍾以內和n分鍾
eg:在 /etc 目錄下查找5 分鍾內被修改過屬性的文件和目錄
find /etc -cmin -5
五、根據 文件類型或i節點 搜索
-type 根據文件類型查找:
f表示文件,d表示目錄,l表示軟鏈接
eg:查找 /home 目錄下文件類型是目錄的
find /home -type d
-inum 根據i節點查找
eg:查找 /tmp 目錄下i節點為400342的文件或目錄
find /tmp -inum 400342
六、組合條件 搜索
這里有兩個參數:
①、-a 表示兩個條件同時滿足(and)
②、-o 表示兩個條件滿足任意一個即可(or)
範例:查找/etc目錄下大於80MB同時小於100MB的文件
find /etc -size +163840 -a -size -204800

語法:locate【文件名】 -i 不區分大小寫
注意:這里和 find 命令是有區別的,find是全盤檢索,而locate 是在文件資料庫中進行搜索。所以locate命令的執行要比find命令執行速度快很多。但是這里有個問題,文件資料庫是需要不斷更新的。我們新創建的文件如果不更新 文件資料庫,使用 locate 是查找不到的。
updatedb 手動更新資料庫,但是對於/tmp目錄下的新建文件,是更新不到文件資料庫的,因為/tmp目錄不屬於文件資料庫的收錄范圍。
eg:locate hcf

功能描述:搜索命令所在的目錄及別名信息
語法:which【命令】
eg:which ls

功能描述:搜索命令所在的目錄及幫助文檔路徑
語法:whereis【命令】
eg:whereis ls

功能描述:在文件中搜尋字元串匹配的行並輸出
語法:grep -iv 【指定字元串】【文件】
-i 不區分大小寫
-v 排除指定字元串
eg:查找 /root/install.log 文件中包含 mysql 字元串的行,並輸出
grep mysql /root/install.log
本搜索工具,根據用戶指定的模式,對目標文件逐行進行匹配檢查,列印匹配到的行
grep是在文件中搜索匹配的字元串,是在文件中進行內容搜索,這個命令後面用到的比較多

描述:
分頁顯示一個文件或任何輸出結果
用於查看純文本文件(較長的)格式
格式:
more[選項] 文件

less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動,卻不能向後移動,而且 less 在查看之前不會載入整個文件。

head[必要參數][選擇參數][文件]
用於顯示指定文件開始多少行內容
命令參數:
-n 10 顯示前10行
-n -10 正常輸出但不顯示最後的10行
eg:顯示new.txt的前兩行內容
head -n 2 new.txt
head -2 new.txt

tail[必要參數][選擇參數][文件]
用於顯示指定文件末尾多少行內容
命令參數:
-n 10 顯示後面10行
-f 持續刷新顯示的內容
eg:顯示new.txt的末尾兩行內容
tail -n 2 new.txt
tail -2 new.txt
eg:指定從第二行開始顯示
tail -n +2 new.txt

描述:一次顯示整個文件內容
cat 命令 用於查看純文本文件(較短)
cat [選項] [文件]…

描述:wc 命令默認情況下會列印換行符數、單詞數和字元數。
用法:wc [選項] [文件]

用法:sort [選項] [文件]

轉自: Linux下文件搜索、查找、查看命令_黃小小的博客-CSDN博客_linux 搜索

❽ Linux中如何在指定目錄下查找文件

find顧名思義就是查找的意思,該命令是各種Linux發行版本中比較重要的、常用的一個命令。Linux下的find命令提供相當多的查找條件,功能比較強大,掌握這個命令之後,對平時的系統運維、管理工作可以達到事半功倍的效果。那麼Linux系統中find命令的用法是什麼?具體請看下文:

Linux

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

語法格式:

find path -option [ -print ] [ -exec -ok command ] {} \;

參數說明:

find根據下列規則判斷path和expression,在命令列上第一個-(),!之前的部分為path,之後的部分是expression。如果path是空字串則使用目前路徑,如果expression是空字串則使用-print為預設expression。

expression中可使用的選項有二三十個,在此只介紹常用的部分。

-mount,-xedv:只檢查和指定目錄在同一個文件系統下的文件,避免列出其他文件系統中的文件;

-amin n:在過去n分鍾內被讀取過;

-anewer file:比文件file更晚被讀取過的文件;

-atime n:在過去n天內被讀取過的文件;

-cmin n:在過去n分鍾內被修改過;

-cnewer file:比文件file更新的文件;

-ctime n:在過去n天內被修改過的文件;

-empty:空的文件-gid n or -group name:gid是n或是group名稱是name;

-ipath p,-path p:路徑名稱符合p的文件,ipath會忽略大小寫;

-name name,-iname name:文件名稱符合name的文件,iname會忽略大小寫;

-size n:文件大小是n單位,b代表512位元組的區塊,c表示字元數,k表示kilo bytes,w是二個位元組。

-type c:文件類型是C的文件。

❾ 怎麼在Linux中查找某個文件

在 Linux 中查找文件有兩種方法。一種是使用 find 命令,另外一種是使用 locate 命令。

1、Find 命令

使用 Linux find 命令可以用不同的搜索標准如名字、類型、所屬人、大小等來搜索目錄樹。基本語法如下:

#findpathexpressionsearch-term

下面是使用 find 命令根據文件名來查找特定文件的一個例子:

#find-nametest.file

命令會搜索整個目錄樹來查找名為 test.file 的文件,並且會提供其存放位置。你可以使用你 Linux 上一個存在的文件名來嘗試一下。

find 命令有時會花費幾分鍾來查找整個目錄樹,尤其是如果系統中有很多文件和目錄的話。要顯著減少時間,你可以指定搜索的目錄。比如,如果你知道 /var 中存在 test.file,那就沒有必要搜索其它目錄。這樣,你可以使用下面的命令:

#find/var-nametest.file

find 還可以根據時間、大小、所屬人、許可權等選項搜索文件。要了解更多關於這些選項的信息,你可以使用查看** Linux find 命令**的手冊。

#manfind

2、locate 命令

要在Linux中使用locate命令,首先需要安裝它。

如果你正在使用 Ubuntu,運行下面的命令來安裝 locate:

#apt-getupdate#apt-getinstallmlocate

如果你使用的是 CentOS ,運行下面的命令來安裝 locate:

#yuminstallmlocate

locate 是一種比 find 更快的方式,因為它在資料庫中查找文件。要更新搜索資料庫,運行下面的命令:

#updatedb

使用 locate 查找文件的語法:

#locatetest.file

就像 find 命令一樣,locate 也有很多選項來過濾輸出。要了解更多你可以查看Linux Locate 命令的手冊。

#manlocate

❿ Linux文件路徑要怎麼進行查找

linux怎麼查找文件蔽知路徑?我們一起來了解一緩謹下吧。
1、打開linux系統,在linux的桌面的空白處右擊。
2、在彈出的下拉選項里,點擊打開終端。
3、輸入find/-name+文件名,回車運行,即可顯示文件所在路徑宏哪消。
4、輸入locate+文件名,可以找到所有包含此文件名的文件。

閱讀全文

與linux根據文件名查找文件相關的資料

熱點內容
單片機編程取反 瀏覽:897
51單片機課程設計課題 瀏覽:900
手機淘寶登錄怎麼加密碼 瀏覽:486
linux快捷方式圖標 瀏覽:38
陽光車險的app叫什麼名字 瀏覽:462
購買單片機的器件時需要給商家啥 瀏覽:535
並行編譯技術的發展 瀏覽:550
阿里雲伺服器安裝管理 瀏覽:551
java手機開發教程 瀏覽:675
我的世界怎麼刪除伺服器數據 瀏覽:672
linux內存子系統 瀏覽:973
加密思維幣 瀏覽:691
魅族訪客文件夾 瀏覽:53
添加的文件夾怎麼找 瀏覽:618
程序員涉黃 瀏覽:701
maven編譯resources下的js 瀏覽:522
ubuntu文件移動命令 瀏覽:230
安卓i怎麼查找蘋果手機 瀏覽:952
雲伺服器宕機概率 瀏覽:233
在線買葯用什麼app知乎 瀏覽:816