1. 您可以通過使用`find`命令來搜索特定的文件和文件夾。
2. `find`命令的基本語法是:`find [起始目錄] -option [-exec COMMAND { } \;]`。該命令會從指定的目錄開始,根據您提供的`option`(搜索條件),遞歸地搜索文件和子目錄中的文件。您可以使用邏輯運算符(not、and、or)來組合多個搜索條件。
3. 邏輯運算符的含義如下:
- `and`:所有條件都必須滿足。例如:`find -name 'tmp' -xtype c -user 'inin'` 會查找同時滿足這三個條件的所有文件。
- `or`:至少一個條件滿足即可。例如:`find -name 'tmp' -o -name 'mina*'` 會查找文件名為'tmp'或匹配'mina*'的所有文件。
- `not`:排除滿足某個條件的文件。例如:`find ! -name 'tmp'` 會查找不是'tmp'的文件名。
4. `find`命令中的`option`選項包括:
- `-name '字串'`:查找匹配給定字串的文件名。
- `-lname '字串'`:查找匹配給定字串的符號鏈接文件。
- `-gid n`:查找屬於組ID為n的所有文件。
- `-uid n`:查找屬於用戶ID為n的所有文件。
- `-group '字串'`:查找屬於名為給定字串的用戶組的所有文件。
- `-user '字串'`:查找屬於名為給定字串的所有用戶的所有文件。
- `-empty`:查找大小為0的目錄或文件。
- `-path '字串'`:查找路徑名匹配給定字串的所有文件。
- `-perm 許可權`:查找具有指定許可權的文件和目錄。
- `-size n[bckw]`:查找大小為n塊(默認512位元組)的文件,可選單位有b(位元組)、k(千位元組)、c(字元)、w(字)
- `-type x`:查找類型為x的文件,x可以是b(塊設備)、c(字元設備)、d(目錄)、p(命名管道)、f(普通文件)、l(符號鏈接)、s(套接字)
- `-xtype x`:與`-type`相同,但只查找符號鏈接文件。
5. 以時間為條件查找的選項:
- `-amin n`:查找n分鍾前被訪問過的文件。
- `-atime n`:查找n天前被訪問過的文件。
- `-cmin n`:查找n分鍾前狀態被修改過的文件。
- `-ctime n`:查找n天前狀態被修改過的文件。
- `-mmin n`:查找n分鍾前內容被修改過的文件。
- `-mtime n`:查找n天前內容被修改過的文件。
6. `-print`:將搜索結果輸出到標准輸出。
2. linux 文件查找和檢索find命令
find命令基礎查找
用法:find 查找的目錄 -name "查找的文件名"
示例:
2. 根據文件類型查找
用法:find 查找的目錄 -type 文件類型
文件類型包括普通文件(f)、目錄(d)、符號鏈接(l)、管道(p)、套接字(s)、字元設備(c)、塊設備(b)
示例:
3. 文件大小
用法:find 查找目錄 -size +10M。
表示查找當前目錄下,大於10M的文件。
+表示大於,-表示小於。
單位:k小寫,M大寫。
范圍查找示例:查找大於10M,小於100M的文件。
4. 按日期查找
創建日期:-ctime -n|+n。
修改日期:-mtime -n|+n。
訪問日期:-atime -n|+n。
-n:n天以內;+n:n天以外。
示例:查找今天創建的文件。
5. 深度
指定搜素的目錄最大層級或最小層級
maxdepth :最大層級數
mindepth:最小層級數
示例: find . -maxdepth 3 -name 'log'
find命令高級查找
find ./ -type d -exec shell命令 {} \;
例如:查找指定目錄,並列出該目錄中文件詳細信息。
另一種寫法:find ./ -type d -ok shell命令 {} \;
ok會詢問是否執行指定的shell命令,所以ok比exec要安全一些!
2. 查找到後,通過管道執行指定shell命令
find ./ -type d | xargs shell命令
例如:查找指定目錄,並列出該目錄中文件詳細信息。
3. 在Linux下面的某一個文件的查找命令
可以使用find命令。例如:find test . 就是在當前目錄下查找test文件
find詳細描述:命令用來在指定目錄下查找文件。任何位於參數之前的字元串都將被視為欲查找的目錄名。如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件。並且將查找到的子目錄和文件全部進行顯示。
語法:find(選項)(參數)
選項:
-amin分鍾:查找在指定時間曾被存取過的文件或目錄,單位以分鍾計算; -anewer參考文件或目錄:查找其存取時間較指定文件或目錄的存取時間更接近現在的文件或目錄;
-atime24小時數:查找在指定時間曾被存取過的文件或目錄,單位以24小時計算; -cmin分鍾:查找在指定時間之時被更改過的文件或目錄;
-cnewer參考文件或目錄查找其更改時間較指定文件或目錄的更改時間更接近現在的文件或目錄;
-ctime24小時數:查找在指定時間之時被更改的文件或目錄,單位以24小時計算; -daystart:從本日開始計算時間;
-depth:從指定目錄下最深層的子目錄開始查找;
-expty:尋找文件大小為0 Byte的文件,或目錄下沒有任何子目錄或文件的空目錄; -exec執行指令:假設find指令的回傳值為True,就執行該指令;
-false:將find指令的回傳值皆設為False;
-fls列表文件:此參數的效果和指定「-ls」參數類似,但會把結果保存為指定的列表文件;
-follow:排除符號連接;
-fprint列表文件:此參數的效果和指定「-print」參數類似,但會把結果保存成指定的列表文件;
-fprint0列表文件:此參數的效果和指定「-print0」參數類似,但會把結果保存成指定的列表文件;
-fprintf列表文件輸出格式:此參數的效果和指定「-printf」參數類似,但會把結果保存成指定的列表文件;
-fstype文件系統類型:只尋找該文件系統類型下的文件或目錄; -gid群組識別碼:查找符合指定之群組識別碼的文件或目錄;
-group群組名稱:查找符合指定之群組名稱的文件或目錄;
-help或——help:在線幫助;
-ilname範本樣式:此參數的效果和指定「-lname」參數類似,但忽略字元大小寫的差別;
-iname範本樣式:此參數的效果和指定「-name」參數類似,但忽略字元大小寫的差別; -inum:查找符合指定的inode編號的文件或目錄; -ipath範本樣式:此參數的效果和指定「-path」參數類似,但忽略字元大小寫的差別; -iregex範本樣式:此參數的效果和指定「-regexe」參數類似,但忽略字元大小寫的差別;
-links連接數目:查找符合指定的硬連接數目的文件或目錄;
-iname範本樣式:指定字元串作為尋找符號連接的範本樣式;
-ls:假設find指令的回傳值為Ture,就將文件或目錄名稱列出到標准輸出;
-maxdepth目錄層級:設置最大目錄層級;
-mindepth目錄層級:設置最小目錄層級;
-mmin分鍾:查找在指定時間曾被更改過的文件或目錄,單位以分鍾計算;
-mount:此參數的效果和指定「-xdev」相同;
-mtime24小時數:查找在指定時間曾被更改過的文件或目錄,單位以24小時計算
-name範本樣式:指定字元串作為尋找文件或目錄的範本樣式;
-newer參考文件或目錄:查找其更改時間較指定文件或目錄的更改時間更接近現在的文件或目錄;
-nogroup:找出不屬於本地主機群組識別碼的文件或目錄;
-noleaf:不去考慮目錄至少需擁有兩個硬連接存在;
-nouser:找出不屬於本地主機用戶識別碼的文件或目錄;
-ok執行指令:此參數的效果和指定「-exec」類似,但在執行指令之前會先詢問用戶,若回答「y」或「Y」,則放棄執行命令;
-path範本樣式:指定字元串作為尋找目錄的範本樣式;
-perm許可權數值:查找符合指定的許可權數值的文件或目錄;
-print:假設find指令的回傳值為Ture,就將文件或目錄名稱列出到標准輸出。格式為每列一個名稱,每個名稱前皆有「./」字元串;
-print0:假設find指令的回傳值為Ture,就將文件或目錄名稱列出到標准輸出。格式為全部的名稱皆在同一行;
-printf輸出格式:假設find指令的回傳值為Ture,就將文件或目錄名稱列出到標准輸出。格式可以自行指定;
-prune:不尋找字元串作為尋找文件或目錄的範本樣式;
-regex範本樣式:指定字元串作為尋找文件或目錄的範本樣式;
-size文件大小:查找符合指定的文件大小的文件;
-true:將find指令的回傳值皆設為True;
-typ文件類型:只尋找符合指定的文件類型的文件;
-uid用戶識別碼:查找符合指定的用戶識別碼的文件或目錄;
-used日數:查找文件或目錄被更改之後在指定時間曾被存取過的文件或目錄,單位以日計算;
-user擁有者名稱:查找符和指定的擁有者名稱的文件或目錄;
-version或——version:顯示版本信息;
-xdev:將范圍局限在先行的文件系統中;
-xtype文件類型:此參數的效果和指定「-type」參數類似,差別在於它針對符號連接檢查。
參數:起始目錄:查找文件的起始目錄。
4. Linux如何使用locate命令查找數據查找指定文件
locate命令是Linux查找命令中的一種,可用於查找數據,與find命令有些相似,但find命令更加消耗資源,下面小編就給大家詳細介紹下locate命令的用法。
locate 讓使用者可以很快速的搜尋檔案系統內是否有指定的檔案。其方法是先建立一個包括系統內所有檔案名稱及路徑的資料庫,之後當尋找時就只需查詢這個資料庫,而不必實際深入檔案系統之中了。在一般的 distribution 之中,資料庫的建立都被放在 crontab 中自動執行。
1.命令格式:
Locate [選擇參數] [樣式]
2.命令功能:
locate命令可以在搜尋資料庫時快速找到檔案,資料庫由updatedb程序來更新,updatedb是由cron daemon周期性建立的,locate命令在搜尋資料庫時比由整個由硬碟資料來搜尋資料來得快,但較差勁的是locate所找到的檔案若是最近才建立或 剛更名的,可能會找不到,在內定值中,updatedb每天會跑一次,可以由修改crontab來更新設定值。(etc/crontab)
locate指定用在搜尋符合條件的檔案,它會去儲存檔案與目錄名稱的資料庫內,尋找合乎範本樣式條件的檔案或目錄錄,可以使用特殊字元(如」*」 或」?」等)來指定範本樣式,如指定範本為kcpa*ner, locate會找出所有起始字串為kcpa且結尾為ner的檔案或目錄,如名稱為kcpartner若目錄錄名稱為kcpa_ner則會列出該目錄下包括 子目錄在內的所有檔案。
locate指令和find找尋檔案的功能類似,但locate是透過update程序將硬碟中的所有檔案和目錄資料先建立一個索引資料庫,在 執行loacte時直接找該索引,查詢速度會較快,索引資料庫一般是由操作系統管理,但也可以直接下達update強迫系統立即修改索引資料庫。
3.命令參數:
-e 將排除在尋找的范圍之外。
-1 如果 是 1.則啟動安全模式。在安全模式下,使用者不會看到許可權無法看到 的檔案。這會始速度減慢,因為 locate 必須至實際的檔案系統中取得檔案的 許可權資料。
-f 將特定的檔案系統排除在外,例如我們沒有到理要把 proc 檔案系統中的檔案 放在資料庫中。
-q 安靜模式,不會顯示任何錯誤訊息。
-n 至多顯示 n個輸出。
-r 使用正規運算式 做尋找的條件。
-o 指定資料庫存的名稱。
-d 指定資料庫的路徑
-h 顯示輔助訊息
-V 顯示程式的版本訊息
4.使用實例:
實例1:查找和pwd相關的所有文件
命令:
locate pwd
輸出:
代碼如下:
peida-VirtualBox ~ # locate pwd
/bin/pwd
/etc/.pwd.lock
/sbin/unix_chkpwd
/usr/bin/pwdx
/usr/include/pwd.h
/usr/lib/python2.7/dist-packages/twisted/python/fakepwd.py
/usr/lib/python2.7/dist-packages/twisted/python/fakepwd.pyc
/usr/lib/python2.7/dist-packages/twisted/python/test/test_fakepwd.py
/usr/lib/python2.7/dist-packages/twisted/python/test/test_fakepwd.pyc
/usr/lib/syslinux/pwd.c32
/usr/share/help/C/empathy/irc-join-pwd.page
/usr/share/help/ca/empathy/irc-join-pwd.page
/usr/share/help/cs/empathy/irc-join-pwd.page
/usr/share/help/de/empathy/irc-join-pwd.page
/usr/share/help/el/empathy/irc-join-pwd.page
實例2: 搜索etc目錄下所有以sh開頭的文件
命令:
locate /etc/sh
輸出:
代碼如下:
peida-VirtualBox ~ # locate /etc/sh
/etc/shadow
/etc/shadow-
/etc/shells
peida-VirtualBox ~ #
實例3:搜索etc目錄下,所有以m開頭的文件
命令:
locate /etc/m
輸出:
代碼如下:
peida-VirtualBox ~ # locate /etc/m
/etc/magic
/etc/magic.mime
/etc/mailcap
/etc/mailcap.order
/etc/manpath.config
/etc/mate-settings-daemon
上面就是Linux locate命令的用法介紹了,使用該命令可以查找指定文件,在locate命令無法查找資源的情況下還可使用find命令和whereis命令等命令查找文件。
5. linux中怎麼查看命令所在目錄
在Linux操作系統中,了解命令所在目錄對於日常使用至關重要。查看命令所在目錄的方法多種多樣,其中最直接的莫過於使用which命令。例如,若要查詢ls命令所在目錄,可以輸入which ls,該命令會返回ls命令的完整路徑。當然,whereis命令也是一個好選擇,它不僅提供命令的完整路徑,還會列出相關幫助文檔的位置。執行whereis ls同樣可以找到ls命令的位置。
除了上述命令,還有一些基本命令也能間接幫助我們理解文件和目錄的情況。比如,cd命令用於改變當前工作目錄,而pwd命令則顯示當前所在目錄的完整路徑。通過組合使用這些命令,我們可以更清晰地定位到所需的命令文件所在位置。
另外,對於系統級的命令查詢,還可以藉助/usr/bin目錄下的文件。這是一個系統命令的主要存放地,大多數常用的系統命令都位於此目錄或其子目錄中。通過了解這個目錄結構,我們可以更好地掌握命令的具體位置。
需要注意的是,不同的Linux發行版可能會有不同的目錄結構,因此了解並熟悉自己使用的具體發行版的目錄布局是非常有幫助的。通過上述方法,我們可以有效地定位到命令的具體位置,從而提高工作效率。