Linux系统之find命令的基本使用

简介: Linux系统之find命令的基本使用

一、检查本地系统版本

[root@node ~]# cat /etc/os-release 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"


二、find命令的帮助

[root@node ~]# find --help
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

default path is the current directory; default expression is -print
expression may consist of: operators, options, tests, and actions:

operators (decreasing precedence; -and is implicit where no others are given):
      ( EXPR )   ! EXPR   -not EXPR   EXPR1 -a EXPR2   EXPR1 -and EXPR2
      EXPR1 -o EXPR2   EXPR1 -or EXPR2   EXPR1 , EXPR2

positional options (always true): -daystart -follow -regextype

normal options (always true, specified before other expressions):
      -depth --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf
      --version -xautofs -xdev -ignore_readdir_race -noignore_readdir_race

tests (N can be +N or -N or N): -amin N -anewer FILE -atime N -cmin N
      -cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME
      -ilname PATTERN -iname PATTERN -inum N -iwholename PATTERN -iregex PATTERN
      -links N -lname PATTERN -mmin N -mtime N -name PATTERN -newer FILE
      -nouser -nogroup -path PATTERN -perm [-/]MODE -regex PATTERN
      -readable -writable -executable
      -wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N
      -used N -user NAME -xtype [bcdpfls]
      -context CONTEXT


actions: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print 
      -fprint0 FILE -fprint FILE -ls -fls FILE -prune -quit
      -exec COMMAND ; -exec COMMAND {} + -ok COMMAND ;
      -execdir COMMAND ; -execdir COMMAND {} + -okdir COMMAND ;

Report (and track progress on fixing) bugs via the findutils bug-reporting
page at http://savannah.gnu.org/ or, if you have no web access, by sending
email to <bug-findutils@gnu.org>.

三、find的基本使用

1.按文件名查找


[root@node ~]# find /etc/ -name  "*.conf" |head
/etc/resolv.conf
/etc/fonts/conf.d/31-cantarell.conf
/etc/fonts/conf.d/66-sil-nuosu.conf
/etc/fonts/conf.d/59-liberation-sans.conf
/etc/fonts/conf.d/65-0-nhn-nanum-gothic.conf
/etc/fonts/conf.d/20-unhint-small-dejavu-sans.conf
/etc/fonts/conf.d/57-dejavu-sans.conf
/etc/fonts/conf.d/65-0-ttf-arphic-uming.conf
/etc/fonts/conf.d/10-hinting-slight.conf
/etc/fonts/conf.d/59-liberation-serif.conf

2.将当前目录及其子目录中的所有文件列出

[root@node ~]# find /home/ -type f
/home/admin/.bash_logout
/home/admin/.bash_profile
/home/admin/.bashrc
/home/huawei/.bash_logout
/home/huawei/.bash_profile
/home/huawei/.bashrc
/home/lisi/.bash_logout
/home/lisi/.bash_profile
/home/lisi/.bashrc
/home/lisi/.cache/abrt/lastnotification
/home/lisi/github/lisi/README.md
/home/lisi/github/lisi/file1
/home/lisi/github/lisi/file2
/home/lisi/github/lisi/aa.txt
/home/lisi/github/lisi/docker.yaml
/home/lisi/github/lisi/.git/refs/heads/main
/home/lisi/github/lisi/.git/description
/home/lisi/github/lisi/.git/hooks/applypatch-msg.sample
/home/lisi/github/lisi/.git/hooks/commit-msg.sample
/home/lisi/github/lisi/.git/hooks/post-update.sample
/home/lisi/github/lisi/.git/hooks/pre-applypatch.sample
/home/lisi/github/lisi/.git/hooks/pre-commit.sample
/home/lisi/github/lisi/.git/hooks/pre-push.sample
/home/lisi/github/lisi/.git/hooks/pre-rebase.sample
/home/lisi/github/lisi/.git/hooks/prepare-commit-msg.sample
/home/lisi/github/lisi/.git/hooks/update.sample
/home/lisi/github/lisi/.git/info/exclude
/home/lisi/github/lisi/.git/HEAD
/home/lisi/github/lisi/.git/config
/home/lisi/github/lisi/.git/objects/83/c831f0b085c70509b1fbb0a0131a9a32e691ac
/home/lisi/github/lisi/.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391
/home/lisi/github/lisi/.git/objects/b2/cee5da3e56febea01ccf3b2c27901d83fb4a43
/home/lisi/github/lisi/.git/objects/94/d3ea2377148473fbf58b33afa7b0a06e010c22
/home/lisi/github/lisi/.git/index
/home/lisi/github/lisi/.git/COMMIT_EDITMSG
/home/lisi/github/lisi/.git/logs/refs/heads/main
/home/lisi/github/lisi/.git/logs/HEAD
/home/lisi/.gitconfig
/home/lisi/.ssh/id_rsa
/home/lisi/.ssh/id_rsa.pub
/home/lisi/.bash_history
/home/test01/file1
/home/test02/file1


3.根据iname查询

[root@node ~]#  find /etc -iname *.Conf |head
/etc/resolv.conf
/etc/fonts/conf.d/31-cantarell.conf
/etc/fonts/conf.d/66-sil-nuosu.conf
/etc/fonts/conf.d/59-liberation-sans.conf
/etc/fonts/conf.d/65-0-nhn-nanum-gothic.conf
/etc/fonts/conf.d/20-unhint-small-dejavu-sans.conf
/etc/fonts/conf.d/57-dejavu-sans.conf
/etc/fonts/conf.d/65-0-ttf-arphic-uming.conf
/etc/fonts/conf.d/10-hinting-slight.conf
/etc/fonts/conf.d/59-liberation-serif.conf

4.查找文件中大小为0的文件

[root@node ~]# find /home -type f -size 0 -exec ls -l {} \;
-rw-rw-r-- 1 lisi lisi 0 Nov 11 15:15 /home/lisi/github/lisi/file1
-rw-rw-r-- 1 lisi lisi 0 Nov 11 15:15 /home/lisi/github/lisi/file2
-rw-rw-r-- 1 lisi lisi 0 Nov 11 15:15 /home/lisi/github/lisi/aa.txt
-rw-rw-r-- 1 lisi lisi 0 Nov 11 15:15 /home/lisi/github/lisi/docker.yaml
-rw-r--r-- 1 root root 0 Nov 12 23:02 /home/test01/file1
-rw-r--r-- 1 root root 0 Nov 12 23:02 /home/test02/file1

5.按文件修改时间查找文件

---(+n)----------|----------(n)----------|----------(-n)---
  (n+1)*24H前|   (n+1)*24H~n*24H间   |n*24H内
  
  
 -ctime -n -- 查找距现在 n*24H 内修改过的文件
 -ctime n -- 查找距现在 n*24H 前, (n+1)*24H 内修改过的文件
 -ctime +n -- 查找距现在 (n+1)*24H 前修改过的文件

find /data -ctime 30

5.根据uid查找文件


[root@node ~]# find /home -uid 1000
/home/admin
/home/admin/.mozilla
/home/admin/.mozilla/extensions
/home/admin/.mozilla/plugins
/home/admin/.bash_logout
/home/admin/.bash_profile
/home/admin/.bashrc

四、find的基本选项

-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
-amin n : 在过去 n 分钟内被读取过
-anewer file : 比文件 file 更晚被读取过的文件
-atime n : 在过去 n 天内被读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比文件 file 更新的文件
-ctime n : 在过去 n 天内创建的文件
-mtime 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 的文件。
              d: 目录
              c: 字型装置文件
              b: 区块装置文件
              p: 具名贮列
              f: 一般文件
              l: 符号连结
相关文章
|
18天前
|
存储 缓存 监控
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
151 78
|
22天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
54 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
29天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
53 14
Linux 10 个“who”命令示例
|
9天前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
32 8
|
18天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
104 20
|
18天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
84 13
|
19天前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
47 7
|
19天前
|
Ubuntu Linux C++
Win10系统上直接使用linux子系统教程(仅需五步!超简单,快速上手)
本文介绍了如何在Windows 10上安装并使用Linux子系统。首先,通过应用商店安装Windows Terminal和Linux系统(如Ubuntu)。接着,在控制面板中启用“适用于Linux的Windows子系统”并重启电脑。最后,在Windows Terminal中选择安装的Linux系统即可开始使用。文中还提供了注意事项和进一步配置的链接。
40 0
|
Linux Go 数据安全/隐私保护
linux常用命令手册 用户管理useradd 文件权限管理chmod 搜索管理find grep
linux常用命令手册 用户管理useradd 文件权限管理chmod 搜索管理find grep
104 2
|
4月前
|
机器学习/深度学习 存储 Linux
linux中强大且常用命令:find、xargs、grep
linux中强大且常用命令:find、xargs、grep
218 9