A. linux中 find . -name和find -name有什麼區別啊!我執行命令結果是一樣的,求指教
1、find是用來查找文件或目錄。首先看一下最簡單的用法直接根據路徑來查找文件。命令詳解:find +(路徑)+(文件名或目錄名),注意不要在 /(根)目錄下查找文件,最好在查找的時候精確一點。
B. 在使用find命令時相對搜索的結果進行操作應使用哪個選項
find命令是用在Linux中,使用什麼選項,自己打開Linux,使用對應命令的man幫助即可。
C. 如何使用Unix/Linux find命令
find 命令是 UNIX程序員的技能中功能最強大和最有用的命令之一。它通過許多強大的支持方式,讓文件查找顯示任務變得更加輕松。
find命令實例:
1.基於 目錄/文件名稱/文件類型 來搜索
在當前目錄或子目錄中查找所有html文件,我們可以使用:
find -name "*.html" -type f
在/usr/bin中查找所有sh文件find /usr/bin -name "*.sh" -type f
該命令有兩個測試條件,第一個,「-name」用於檢驗搜索過程中的每個文件名,如果你需要對大小寫敏感,可以使用「-iname」代替。第二個參數是「-type」,
它用於指定你感興 趣的文件類型。「f」表示我們查找的是普通文件,我們可以使用「d」表示目錄或使用「l」或"s"表示符號連接。在find 手冊中可以看到該工具的所有選項。
find /-maxdepth 1 -name "*.html" -type f
Tips:將-maxdepth選項放在最前面
默認情況下,find遍歷所有子目錄,但是你可以通過指定最大深度來控制這個行為。在前面的例子中,如果我們只想搜索這兩個目錄不想搜索下一層,你可以 添加「-maxdepth 1」到命令中。設置最大深度為0表示只檢驗命令行中的給定文件。同樣,你可以設定最小深度,從而避免搜索位於根目錄的文件。
2.基於 用戶/用戶組 來搜索
find 的另一個應用是搜索屬於某個給定用戶的文件,因此為了搜索我的系統中所有屬於我的文件,我使用以下命令:
find / -user gary
同樣可以搜索基於組用戶的文件,使用「-group」參數。
3.基於 文件相關的時間特徵 來搜索
相關選項:
分別使用「-ctime」,「-atime」和「-mtime」參數來指定最後創建時間,最後訪問時間和最後修改時間。(單位是"天")
如果你需要更精確地搜索,可以使用分鍾變數「-cmin」,「-amin」和「-mmin」。
find ./ -mtime 0 ;返回最近24小時內修改過的文件。./代表需要查找的文件夾
find ./ -mtime 1 返回的是前48~24小時修改過的文件。而不是48小時以內修改過的文件。
find -ctime -1 搜索最近兩天創建的文件
注意:
1前面的「-」表示我們是從今天向以前的日期范圍搜索,與數字前面沒有"-"是有區別的。如果你剛犯了一個錯誤但不確定會影響到那些文件,
這很簡單可以使用如下查詢:find -mmin -5
可以用以下命令查看atime和ctime
ls -lu 或者 ls -l --time=atime 顯示文件的atime
ls -lc 或者 ls -l --time=ctime 顯示文件的ctime
在提供一個例子,搜索當前目錄下前20分鍾到10分鍾修改過的文件。
find . -mmin +9 -mmin -21
還可以使用 "-newer","-anewer","-cnewer"參數來指定一個文件,將其與要搜索的文件進行時間的比較。
• -newer 指內容最近被修改的文件
• -anewer 指最近被讀取過的文件
• -cnewer 指狀態最近發生變化的文件(查看文件狀態命令 stat filename)
例如,查找在sum.java 之後修改的文件
find -newer "sum.java"
4.基於 文件的大小 來搜索
例如我們知道一個Linux文件大小為1,500 bytes,那麼我們可是使用如下命令來查詢
find . -size 1500c
字元 c 表明這個要查找的文件的大小是以bytes為單位。如果我們連這個文件的具體大小都不知道,那麼在Linux中還可以進行模糊查找方式來解決。例如我們輸 入
find . -size +10000000c
這個命令,則標明我們指定系統在根目錄中查找出大於10000000位元組的文件並顯示出來。命令中的「+」是表示要求系統只列出大於指定大小的文件,
而使 用「-」則表示要求系統列出小於指定大小的文件。
還有很多例子,
搜索大小為10M的文件
find . -size 10M
搜索大於10M的文件
find . -size +10M
找到小於10M的文件
find . -size -10M
要列出所有長度為零的文件,請使用下面的命令:
find . -empty - exec ls {} \
在查找到空文件之後,您可以選擇用 rm 命令來代替ls 命令,以刪除這些文件。
5. 基於 文件的許可權 來搜索
查找當前目錄下所有文件許可權為755的文件
find . -perm 755 -print
6.使用混合查找方式查找文件
find命令可以使用混合查找的方法,例如我們想在/tmp目錄中查找大於100000000位元組並且在48小時內修改的某個文件,我們可以使用-and來把兩個查找選項鏈接
起來組合成一個混合的查找方式。
find /tmp -size +10000000c -and -mtime +2
如何搜索修蓋時間介於f1與f2各自的修改時間之間的文件?
find . -newer f1 -and ! -newer f2 //f1的修改時間應早於f2的修改時間
學習過計算機語言的朋友都知道,在計算機語言里,使用and ,or 分別表示「與」和「或」的關系。在Linux系統的查找命令中一樣通用。
還有這樣的例子,
find / -user fred -or -user george
我們可以解釋為在/tmp目錄中查找屬於fred或者george這兩個用戶的文件。
在find命令中還可以使用「非」的關系來查找文件,如果我們要在/tmp目錄中查找所有不屬於panda的文件,使用一個簡單的
find /tmp ! -user panda
更好的利用find
7.快速執行上一次的find命令而不用重復輸入參數
!find
事實上,"!"可以用在任何unix/linux命令的前面,以執行上一條同種類型的命令。
8.改變顯示結果
find對文件執行的標准行為是顯示出文件名,這就是為什麼如果你跟蹤結果,就會看到一系列文件名的原因。如果你想使用這些結果作為另外一個過濾器的輸入的話,
這將會十分有用。但是如果你需要結果的更多信息,你可以令find輸出與ls –l同樣的結果:
find -user gary -iname "*.html" -ls
這個命令將會返迴文件許可權和時間信息。
9.將搜索結果作為程序的輸入
可以通過使用「-exec」參數,來讓find命令對每個搜索結果運行任何程序。
如果要刪除當前目錄中所有擴展名為「.tmp」的文件。
find -name ".tmp" -exec rm {} \ ; //注意結尾分號
上面兩個大括弧將會被相應的文件名代替,反斜杠用來告訴find何時命令結束。
find常和chmod結合使用快速改變大量文件的文件許可權,或者和grep與sed結合使用來選擇性的搜索或使用正則表達式修改文本。使用它作為一個腳本的輸入,
你可以讓費 時的任務自動完成,例如清除一年內沒有訪問的文件,或者自動備份修改的文件。
10.查找並顯示文件的方法
查找到某個文件是我們的目的,我們更想知道查找到的文件的詳細信息和屬性,如果我們採取現查找文件,在使用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
列印同種文件格式的文件
參考:
[1].linux/unix中如何用find命令詳解
http://www.tongcx.com/node/86
[2].使用 UNIX find 命令的高級技術
http://www.ibm.com/developerworks/cn/aix/library/es-unix-find.html
[3].10 Example of find command in Unix and Linux (對find命令的基本用法以及高級技巧都有介紹)
http://javarevisited.blogspot.com/2011/03/10-find-command-in-unix-examples-basic.html
[4].Top 10 examples of find command in unix and linux
http://www.cloudhadoop.com/2012/02/top-10-examples-of-find-command-in-unix.html
[5].Find Command in Unix and Linux Examples (極豐富的關於find命令的例子)
http://www.folkstalk.com/2011/12/101-examples-of-using-find-command-in.html
[6].A Unix/Linux 「find」 Command Tutorial (實用的,短小精悍的教程)
http://content.hccfl.e/pollock/Unix/FindCmd.htm
D. 哪個命令可以查看find的幫助說明
摘要 1. which 命令只會查找環境變數中的文件位置,例如:
E. CMD的find命令怎麼用
在cmd窗口中敲下find /? 這條命令,然後重重地按下回車鍵。find /? 的執行結果很快,幫助信息全出來了。
F. find . -user 用戶名 -exec chmod 777 {} \ 這個命令的詳解
你先要知道一點, -xxx都是參數的key
-exec 意思是在find命令內執行 後面的shell
這個參數中有一些特殊語法,因為他是find命令自己定義的語法
其中{} 代表 find命令匹配到的文件 , \ 代表-exec命令的結束符。
所以整個命令的含義是: 找到當前目錄該用戶的文件,並把這些文件的許可權改成777
777也就是自己可讀寫執行,組內可讀寫執行,其他人也可讀寫執行
明白了嗎???
G. unix的find命令用法詳細
網上找的,很詳細了
H. find命令和grep命令的區別及詳細用法
find和grep處理對象不同,find是在文件夾中找文件用的,可以針對文件屬性(大小、日期等)進行約束;
grep本質是查找文件中的字元串的,可以用正則表達式,功能強大。
通過ls 目錄 |grep '查找內容' 也能找到包含查找內容的文件名
至於兩個命令的詳細用法建議使用man,查看幫助文件或 命令--help。
命令的參數很多,當然有些也不常用,一個個寫它麻煩。
I. 請幫我解析以下find命令的意思: find . -name "*ab*" -exec rm -f {}\;
很高興你的信任。
. 在此表示當前目錄
-name 「*ab」 表示查找以ab結尾的文件或文件名。
-exec表示執行什麼命令。後面跟要執行的命令。此處是rm -f,表示不確認刪除。
{} \;表示把查找到的結果發送到此來。
整句命令表示:在當前目錄下查找以ab結尾的文件,並刪除。