UNIX中的find命令是用于遍历文件层次结构的命令行实用程序。它可用于查找文件和目录并对其执行后续操作。它支持按文件,文件夹,名称,创建日期,修改日期,所有者和权限进行搜索。通过使用“ -exec”,可以在找到的文件或文件夹上执行其他UNIX命令。
句法 :
$ find [where to start searching from]
[expression determines what to find] [-options] [what to find]
选项 :
- -exec CMD:正在搜索的文件符合以上条件,并且返回0作为成功执行命令的退出状态。
- -ok CMD:它与-exec相同,除了首先提示用户。
- -inum N:搜索索引号为“ N”的文件。
- -links N:搜索带有“ N”个链接的文件。
- -name demo:搜索“ demo”指定的文件。
- -newer file:搜索在“文件”之后修改/创建的文件。
- -perm octal:如果权限为“八进制”,则搜索文件。
- -print:显示使用其余条件找到的文件的路径名。
- -empty:搜索空文件和目录。
- -size + N / -N:搜索“ N”个块的文件; ‘N’后跟’c’可用于测量字符大小; ‘+ N’表示大小>’N’个块,’-N’表示大小<‘N’个块。
- -用户名:搜索由用户名或ID“名称”拥有的文件。
- \(expr \):如果’expr’为true,则为true;用于与OR或AND组合的分组条件。
- ! expr:如果’expr’为假,则为true。
例子 :
考虑以下树级别:
1.搜索具有特定名称的文件。
$ find ./GFG -name sample.txt
它将在GFG目录中搜索sample.txt。
输出 :
2.搜索带有模式的文件。
$ find ./GFG -name *.txt
它将给出所有以“ .txt”结尾的文件。
输出 :
3.如何查找和删除带有确认的文件。
$ find ./GFG -name sample.txt -exec rm -i {} \;
输入此命令后,是否要删除sample.txt会提示您进行确认。如果输入“ Y / y”,它将删除该文件。
输出 :
4.搜索空文件和目录。
$ find ./GFG -empty
此命令在输入的目录或子目录中查找所有空文件夹和文件。
输出 :
5.搜索具有输入权限的文件。
$ find ./GFG -perm 664
此命令在GFG目录或子目录中找到具有给定权限的所有文件。
输出 :
6.在多个文件中搜索文本。
$ find ./ -type f -name "*.txt" -exec grep 'Geek' {} \;
此命令打印其中包含“ Geek”和“ -type f”的行,指定输入类型为文件。
输出 :