Linux命令之find命令
一、命令簡介
??Linux find 命令用來在指定目錄下查找文件。任何位于參數之前的字符串都將被視為欲查找的目錄名。如果使用該命令時,不設置任何參數,則 find 命令將在當前目錄下查找子目錄與文件。并且將查找到的子目錄和文件全部進行顯示。find 命令有非常大的靈活性,可以向其指定豐富的搜索條件(如文件權限、屬主、屬組、文件類型、日期和大小等)來定位系統中的文件和目錄。此外,find 還支持對搜索到的結果進行多種類型的命令操作。
二、使用示例
1、查找指定文件
使用-name參數查找指定文件
[root@test1 apache-tomcat-9.0.44]# find . -name startup.sh
./bin/startup.sh
2、查找指定后綴文件
使用正則表達式通配符查找匹配的文件
[root@test1 apache-tomcat-9.0.44]# find . -name *.sh
./bin/catalina.sh
./bin/ciphers.sh
./bin/configtest.sh
./bin/daemon.sh
./bin/digest.sh
./bin/makebase.sh
./bin/setclasspath.sh
./bin/shutdown.sh
./bin/startup.sh
./bin/tool-wrapper.sh
./bin/version.sh
3、查找指定類型的文件
使用-type支持指定類型的文件
[root@test1 apache-tomcat-9.0.44]# find ./webapps/ -type d
./webapps/
./webapps/qiuhun
./webapps/qiuhun/renxi
4、查找最近修改過的文件
查找最近2天內有更新的文件
[root@test1 apache-tomcat-9.0.44]# find ./logs -mtime -2
./logs
./logs/catalina.out
./logs/catalina.2021-03-31.log
./logs/localhost.2021-03-31.log
./logs/manager.2021-03-31.log
./logs/host-manager.2021-03-31.log
./logs/localhost_access_log.2021-03-31.txt
5、查找指定目錄深度下的文件
查找/var/log目錄下最小深度為2的log文件
[root@test1 apache-tomcat-9.0.44]# find /var/log/ -mindepth 2 -name *.log
/var/log/audit/audit.log
/var/log/gdm/:0-greeter.log
/var/log/gdm/:0.log
/var/log/tuned/tuned.log
/var/log/anaconda/anaconda.log
/var/log/anaconda/X.log
/var/log/anaconda/program.log
/var/log/anaconda/packaging.log
/var/log/anaconda/storage.log
/var/log/anaconda/ifcfg.log
/var/log/anaconda/ks-script-oDrhPT.log
/var/log/anaconda/ks-script-ohL_89.log
/var/log/anaconda/journal.log
/var/log/vmware/rc.local.log
6、根據inode刪除文件
首先通過ls -li查找inode
[root@test1 apache-tomcat-9.0.44]# ll -i
然后通過find -inum inode號 -delete指定文件,此方法對于刪除上傳到服務器后文件名亂碼的文件非常有用
[root@test1 apache-tomcat-9.0.44]# find -inum 2663645 -delete
7、清除查找到的超過指定時間的日志文件
清除查找到的文件,刪除前確認
[root@test1 apache-tomcat-9.0.44]# find ./logs/ -mtime +5 -ok rm {} ;
< rm … ./logs/catalina.2021-03-26.log > ? y
< rm … ./logs/localhost.2021-03-26.log > ? y
< rm … ./logs/manager.2021-03-26.log > ? y
< rm … ./logs/host-manager.2021-03-26.log > ? y
< rm … ./logs/localhost_access_log.2021-03-26.txt > ? y
8、查找當前目錄下具有指定權限的文件并獲取完整路徑
使用perm參數查找指定權限的文件
[root@test1 apache-tomcat-9.0.44]# find /home/wuhs/apache-tomcat-9.0.44/bin -type f -perm 750 -exec ls -l {} \;
-rwxr-x— 1 wuhs wuhs 25294 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/catalina.sh
-rwxr-x— 1 wuhs wuhs 1997 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/ciphers.sh
-rwxr-x— 1 wuhs wuhs 1922 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/configtest.sh
-rwxr-x— 1 wuhs wuhs 9100 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/daemon.sh
-rwxr-x— 1 wuhs wuhs 1965 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/digest.sh
-rwxr-x— 1 wuhs wuhs 3382 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/makebase.sh
-rwxr-x— 1 wuhs wuhs 3708 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/setclasspath.sh
-rwxr-x— 1 wuhs wuhs 1902 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/shutdown.sh
-rwxr-x— 1 wuhs wuhs 1904 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/startup.sh
-rwxr-x— 1 wuhs wuhs 5540 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/tool-wrapper.sh
-rwxr-x— 1 wuhs wuhs 1908 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/version.sh
9、查找指定用戶的文件
查找webapps目錄下屬主為wuhs用戶的文件
[root@test1 apache-tomcat-9.0.44]# find ./webapps/ -user wuhs -type f -print
./webapps/qiuhun/說明.txt
./webapps/qiuhun/qiuhun.html
./webapps/qiuhun/renxi.mp3
./webapps/qiuhun/qiuhun.html.bak
./webapps/qiuhun/WebForm1.aspx.cs
./webapps/qiuhun/WebForm1.aspx
./webapps/qiuhun/WebForm1.aspx.designer.cs
./webapps/qiuhun/renxi/jscex-async.min.js
./webapps/qiuhun/renxi/jscex-jit.js
./webapps/qiuhun/renxi/jscex-builderbase.min.js
./webapps/qiuhun/renxi/jscex.min.js
./webapps/qiuhun/renxi/default.css
./webapps/qiuhun/renxi/love.js
./webapps/qiuhun/renxi/functions.js
./webapps/qiuhun/renxi/jscex-parser.js
./webapps/qiuhun/renxi/jscex-async-powerpack.min.js
./webapps/qiuhun/renxi/jquery.min.js
./webapps/qiuhun/index.html
10、查找指定大小的文件
查找超過1M的文件
[root@test1 apache-tomcat-9.0.44]# find . -size +1M -type f
./lib/catalina.jar
./lib/ecj-4.18.jar
./webapps/qiuhun/renxi.mp3
三、使用語法及參數說明
1、使用語法
usage:find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path…] [expression]
用法:find [路徑] [表達式選項] [行動]
2、常用表達式選項參數說明
| -mount, -xdev | 只檢查和指定目錄在同一個文件系統下的文件,避免列出其它文件系統中的文件 |
| -amin n | 在過去 n 分鐘內被讀取過 |
| -anewer file | 比文件 file 更晚被讀取過的文件 |
| -atime n | 在過去n天內被讀取過的文件 |
| -cmin n | 在過去 n 分鐘內被修改過 |
| -cnewer file | 比文件 file 更新的文件 |
| -ctime n | 在過去n天內被修改過的文件 |
| -empty | 空的文件-gid n or -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 b/d/c/p/l/f | 查是塊設備、目錄、字符設備、管道、符號鏈接、普通文件 |
| -perm | 按執行權限來查找 |
| -user username | 按文件屬主來查找 |
| -group groupname | 按組來查找 |
| -depth | 指定查找目錄深度 |
| -follow | 如果遇到符號鏈接文件,就跟蹤鏈接所指的文件 |
| -prune | 忽略某個目錄 |
| -maxdepth | 指定查找目錄最大深度 |
| -mindepth | 指定查找目錄最小深度 |
| -version | 查看版本 |
| -help | 獲取幫助 |
3、常用行動參數說明
| -delete | 刪除查找到的文件 |
| -exec command | 對查找到的文件執行command命令 |
| -ok command | 執行命令前需要進行確認 |
| -printf | 格式化輸出 |
4、多條件組合參數
| -o | 是或者的意思 |
| -a | 是而且的意思 |
| -not | 是相反的意思 |
總結
以上是生活随笔為你收集整理的Linux命令之find命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数字图像处理 冈萨雷斯 (内含算法链接)
- 下一篇: Linux停服务器命令,使用linux的