find 是 Linux 下最有用的命令之一,熟練的使用它對(duì)于提高工作效率很有幫助。下面介紹它的一些用法
1. 最基本的 用法是:
find dir
這時(shí),它將列出目錄 dir下所有的文件和目錄。
它相當(dāng)于 find dir -print
如果使用 print0, 那么,每個(gè)匹配的文件名字之間用一個(gè) ‘\0’ 分割(默認(rèn)用的是換行符)。如果文件名包含空格的話,可以使用 print0
2. 按名字搜索使用 -name 選項(xiàng)。如果要使用兩個(gè)搜索標(biāo)準(zhǔn)來搜索滿足其中之一的文件,可以使用 -o (or)。
ls
A file dir1 dir2 dir3 file file1 file2 picture1 picture2 picture3
charles@taotao:~/test$ find 。 \( -name “*dir*” -o -name “*file*” \) -print
。/file2
。/A file
。/file1
。/dir3
。/dir1
。/file
。/dir2
-path選項(xiàng)則會(huì)把匹配的文件名或者路徑名搜出來。
3. -regex 使用正則匹配。
ls
1.txt A file b.mp3 dir1 dir3 file1 picture1 picture3
2.txt a.mp3 c.avi dir2 file file2 picture2
charles@taotao:~/test$ find 。 -regex “.*\(\.mp3\|\.avi\)$”
。/a.mp3
。/b.mp3
。/c.avi
4. 找出不符合搜索條件的文件,可以使用 ?。?/p>
$ find 。 ! -name “*.txt”
。
。/file2
。/A file
。/picture3
。/file1
。/picture2
。/dir3
。/a.mp3
。/dir1
。/picture1
。/file
。/b.mp3
。/dir2
。/c.avi
5. 路徑搜索深度。
默認(rèn)下,find 會(huì)遞歸搜查制定路徑下所有子目錄??梢允褂?-maxdepth 和 -mindepth指定最多要搜查到指定目錄下的幾級(jí)目錄,從指定目錄的幾級(jí)目錄開始搜索。
如果要僅僅搜索當(dāng)前目錄下的文件,使用 find 。 -maxdepth 1 ;如果要搜索除當(dāng)前目錄下的所有文件,使用 find 。 -mindepth 2
6. 根據(jù)文件類型搜索
用 -type 指定。 常用的有 -type f (搜索文件), -type d(目錄), -type l (符號(hào)鏈接)
7. 根據(jù)文件時(shí)間。 -atime (上一次的訪問時(shí)間), -mtime (文件內(nèi)容的修改時(shí)間), -ctime(文件屬性的修改時(shí)間)。時(shí)間單位是天。數(shù)字前 +表示大于,-表示小于。
find 。 -type f -atime -7 -print
搜索最近7天內(nèi)被訪問的文件
另外還有分鐘為單位的選項(xiàng): -amin, -mmin, -cmin.用法類似。
8. 根據(jù)文件大小搜索。使用 -size選項(xiàng)。后面的數(shù)字同樣可使用 +/-號(hào)。 數(shù)字后面跟后綴表示單位: b: 512 字節(jié)的 block; c: 字節(jié); w: 2 字節(jié); k: 1024 字節(jié); M: 兆字節(jié); G: 1024 兆
/media/DATA/video$ find 。 -type f -size +2G
。/Home Alone 1990 720p BluRay DTS x264-MgB/Home Alone 1990 720p BluRay DTS x264-MgB.mkv
。/My.Sassy.Girl.2001.720p.Blu-ray.x264.DTS-HDChina [PublicHD]/My.Sassy.Girl.2001.720p.Blu-ray.x264.DTS-HDChina.mkv
。/The Godfather part I.mkv
。/The Godfather Part 2 (1974) [1080p]/The.Godfather.Part.2.1974.1080p.BrRip.x264.BOKUTOX.YIFY.mp4
找出所有大于2G的文件。
9. 刪除匹配的文件: 用 -delete
還可以用:
:/usr/local/bin$ find 。 -name “*qemu*” -exec rm {} \;
rm: remove write-protected regular file `。/qemu-io‘?
10.根據(jù)文件的屬性(讀寫,執(zhí)行權(quán)限)和所有者搜索。 使用 -perm 和 -user
11. 在 find 中執(zhí)行其他的命令。 使用 -exec
比如,把上面的owner為 root的改為 charles,:
{}是一個(gè) place holder,它會(huì)被替換成搜索到的每個(gè)文件。
12. 忽略某些目錄。 使用 -prune
find 。 -name “dir1” -prune -o -type f -print
列出當(dāng)前目錄下除 dir1目錄以外的所有文件。
13. 拷貝搜索到的文件到另外一個(gè)目錄。
find 。 -type f -name “*.ko” -exec cp {} ~/tmp/ \;
或者:
find 。 -type f -name “*.ko” | xargs -I {} cp {} ~/tmp
-
Linux
+關(guān)注
關(guān)注
87文章
11292瀏覽量
209323 -
Find
+關(guān)注
關(guān)注
0文章
54瀏覽量
11649
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論