linux基本命令学习(2)--find
find命令用于查找文件和目录,任何位于参数之前的字符串都将被视为欲查找的目录。
find 可以指定查找条件如名称,类型,时间,文件大小,权限和所有者查找,针对多个条件进行与或非的逻辑运算。我们可以控制find的查找的行为,还可以和其他命令组合使用。
find
find .
find . -print
三者等效, 查找当前目录下所有的文件和目录(递归子目录),以每行一个文件或者目录的形式列举出,不包含隐藏文件
find lib opt bin
同上,查找指定的多个目录(lib/opt/bin)
(1) 指定查找条件
1) 按名称查找
find . -name readme.txt
查找当前目录下(递归子目录)的所有名为readme.txt的文件
find . -name \*.txt
find . -name "*.txt"
查找当前目录下(递归子目录)的所有名称以.txt结尾的文件,注意*号的写法,需要前面加\或者放到双引号中
find . -iname \*.txt
默认find是区分大小写的,如果不想区分大小写,请使用-iname替代-name,如上则"abc.TXT"将被查找到
2) 按类型查找
find . -type d
查找当前目录下(递归子目录)的所有目录
find . -type f
查找当前目录下(递归子目录)的所有文件
find . -type l
查找当前目录下(递归子目录)的所有符号链接
3) 按时间查找
1. 以小时为单位的时间
find 命令三个选项用于按照时间查找,单位都是小时:
mtime — 文件内容上次修改时间
atime — 文件被读取或访问的时间
ctime — 文件状态变化时间
这三个选项都需要配置一个n值使用,可以是-n / n / +n:
-n 小于 n
n 正好与 n 相等
+n 大于 n
find . -mtime -1
查找当前目录下(递归子目录)的所有1小时内修改的文件和目录
find . -mtime +1
查找当前目录下(递归子目录)的所有修改时间超过1小时的文件和目录
find . -mtime 1
查找当前目录下(递归子目录)的所有恰好在1小时前修改的文件和目录
2. 以分钟为单位的时间
用法和*time类似,mmin、amin和cmin 的不同在于单位时间是分钟,用于查找在不到1小时的时间内变化了的文件和目录
find . -mmin -10
查找当前目录下(递归子目录)的所有10分钟内修改的文件和目录
find . -mmin +20
查找当前目录下(递归子目录)的所有20分钟外1小时内修改的文件和目录
3. 与特定的文件比较
-newer,-anewer和-cnewer选项用于查找与特定的文件比较的已修改或访问过的文件,类似mtime,atime和ctime
-newer 指内容最近被修改的文件
-anewer 指最近被读取过的文件
-cnewer 指状态最近发生变化的文件
find . -newer a.txt
查找当前目录下(递归子目录)的所有修改时间在a.txt之后(所以文件更新)的文件和目录
4) 按文件大小查找
1. -size 选项用于查找满足指定的大小条件的文件(注意不查找目录), +表示大于, -表示小于, 没有+1表示正好等于。文件大小的单位可以是字节(用c表示), kb(用k表示)。
find . -size -100c
查找当前目录下(递归子目录)的所有文件大小小于100字节的文件
find . -size +100k
查找当前目录下(递归子目录)的所有文件大小大于100k的文件
find . -size 0
查找当前目录下(递归子目录)的所有文件大小为0的文件
2. -empty 查找空文件和空文件夹, 和-size 0不同的在于-size 0 只查找空文件,或者说-empty -type f 等同于-size 0 :
find . -empty
查找当前目录下(递归子目录)的所有文件大小为0的文件和空文件夹
find . -empty -type f
查找当前目录下(递归子目录)的所有文件大小为0的文件
find . -empty -type d
查找当前目录下(递归子目录)的所有空目录
5) 按权限和所有者查找
find . -perm 777
查找当前目录下(递归子目录)的所有权限为777的文件和目录
find . -perm -u=rwx
查找当前目录下(递归子目录)的所有user权限为rwx的文件和目录
find . -perm -ug=x
查找当前目录下(递归子目录)的所有user和group权限为x的文件和目录
find . -user sky
查找当前目录下(递归子目录)的所有user为sky的文件和目录
find . -group users
查找当前目录下(递归子目录)的所有group为users的文件和目录
(2) 查找条件的逻辑运算
1. 逻辑与
find . -name "*.java" -size -mmin -10
find . -name "*.java" -a -size -mmin -10
查找当前目录下(递归子目录)的所有名为*.java并且修改时间在10分钟之内的文件,-a是默认选项
2. 逻辑或
find . -name "*.class" -o -name "*.jar"
查找当前目录下(递归子目录)的所有名为*.class或者*.jar的文件和目录
3. 逻辑非
find . ! -user sky
查找当前目录下(递归子目录)的所有user不是sky的文件和目录
(3) 控制查找的行为
find . -maxdepth 3 -name "*.txt"
查找当前目录下(递归子目录)的所有名为*.txt的文件,目录深度不超过3层
find . -maxdepth 1 -name "*.txt"
查找当前目录下(不递归子目录,因为maxdepth为1)的所有名为*.txt的文件
find . -mindepth 3 -name "*.txt"
查找当前目录下(递归子目录)的所有名为*.txt的文件,目录深度不低于3层
find . -mindepth 1 -name "*.txt"
查找当前目录下的子目录中(递归子目录)的所有名为*.txt的文件,不包含当前目录
find . -depth -name "*.txt"
查找当前目录下(递归子目录)的所有名为*.txt的文件,每个目录都是先在目录中进行查找,然后才继续查找其子目录
(4) find和其他命令的组合
find . -name "*.jar" -exec ls -l {} \;
find . -name "*.jar" -ls
查找当前目录下(递归子目录)的所有*.jar文件并使用ls -l列出详细信息
find . -name "*.java" -exec grep HashMap {} \;
查找当前目录下(递归子目录)的所有的含有"HashMap"字样的*.java文件
find . -name "*.sh" -exec mv {} backup \;
查找当前目录下(递归子目录)的所有的*.sh文件并移动到backup目录中
分享到:
相关推荐
超级详细的Linux,find命令详解,很实用适合Linux学习爱好者!
04.3.1 Linux常用命令-文件搜索命令-文件搜索命令find.mp4 04.3.2 Linux常用命令-文件搜索命令-其他文件搜索命令.mp4 04.4 Linux常用命令-文件搜索命令-帮助命令.mp4 04.5 Linux常用命令-文件搜索命令-用户管理...
接下来,我们详细解析文档中提到的Linux命令和功能: 1. 启动和关闭系统 - `#startx`:启动图形界面。 - `#logout`:注销当前用户。 - `#init 5`:切换到多用户图形界面模式。 - `#init 3`:切换到多用户命令行...
Linux 中的 find 命令是使用频率非常高的一个命令,它可以在指定的目录下查找文件或目录。find 命令的语法格式为:find [选项] [参数] [目录] 其中,选项和参数是可选的,目录是必需的。如果不指定目录,默认情况下...
Linux Find命令是Linux系统中一个极其重要的工具,它允许用户在文件系统中查找符合特定条件的文件和目录。这个命令的灵活性和强大性使得它成为系统管理员和开发者的必备技能。下面将详细介绍Linux Find命令的一些...
本篇将详细介绍几个常用的Linux命令及其在处理图片格式时的应用。 1. **查看图片** - `display` 或 `imgcat` (Imagemagick套件的一部分):用于在终端中显示图片。例如,`display image.jpg` 可以查看jpg格式的图片...
以下是一些主要的Linux命令及其详细说明: 1. **cat命令**: `cat`命令用于合并和显示文件内容,同时也支持重定向输出到其他文件。例如,`cat -n file`会给文件中的每一行编号,`cat -b file1 file2 > file3`会将...
Linux 文件查找-find 命令详解 Linux 中的 find 命令是一种实时查找工具,通过遍历指定路径完成文件查找工作。该命令具有查找速度略慢、精确查找、实时查找和查找条件丰富等特点。 基本语法: ``` find [OPTION].....
Linux 下 find 命令详解 find 命令是 Linux 系统中一个功能强大且常用的命令,用于在文件系统中搜索文件。它可以根据文件的各种属性,如名称、权限、所有者、组、时间戳、大小等,来查找指定的文件。 基本语法 ...
`find`命令是Linux系统中一个非常强大的工具,用于在文件系统中查找符合特定条件的文件。这个命令的灵活性和实用性使得它成为日常系统管理、故障排查和数据操作中的必备技能。下面我们将深入探讨`find`命令的一些...
2. **Linux常用命令**: Linux是一个强大的操作系统,其命令行界面提供了丰富的操作命令: - `ls`:列出目录内容 - `cd`:改变当前工作目录 - `pwd`:显示当前工作目录 - `mkdir`:创建新目录 - `rm`:删除...
Linux命令是Linux操作系统中进行系统管理、文件操作和任务执行的基本工具。这些命令通常通过终端或控制台输入,使得用户可以与系统交互,执行各种任务,而无需图形化界面。在移动设备上,如Android手机,也可以安装...
"linux下find命令的用法" Linux 操作系统下的文件查找命令是 find 命令,这个命令可以帮助用户在 Linux 系统中快速查找需要的文件。find 命令的使用方法非常多样化,可以根据文件名、文件大小、文件类型、修改时间...
Linux 基础 88-其他命令-01-学习目标以及find命令的基本使用.flv
例如,find /home -name mk 命令,后面可以加上 -h 或 --help 来查看帮助信息。 shutdown、init、reboot 命令 shutdown 命令的作用是关机、重启、定时关机。语法:shutdown [选项] -r 重启 -h 关机 -h +10 10 分钟...
`man`命令是学习和查找Linux命令用法的关键工具,它提供了详尽的在线手册页。只需输入`man command_name`,就能查看关于该命令的详细信息。`info`命令与`man`类似,但通常包含更丰富的信息,且支持交互式浏览。 ...
在Linux操作系统中,`find`命令是一个非常强大的工具,用于在文件系统中搜索符合特定条件的文件和目录。它允许用户根据文件名、大小、时间戳等属性来定位文件。本详细说明将深入探讨`find`命令的使用方法、选项以及...
对于Java开发者来说,掌握一些基础的Linux命令是必要的技能,这有助于提升开发效率和系统管理能力。 1. **Linux与Unix的关系**:Linux是从Unix发展而来的一个开源操作系统,它继承了Unix的多用户、多任务特性。Unix...
### Linux Find 命令详解 #### 概述 `find` 命令是 Linux 系统中一个非常强大的工具,用于在指定路径下查找文件。它支持多种选项来帮助用户精确地定位到需要的文件。通过 `find` 命令,用户可以基于文件名、文件...