在Linux系统中,find是一个比较常用的命令,find命令在目录结构中搜索文件,执行指定的操作,了解其格式和用法对我们非常有用。
find是Linux的重要命令,因为Linux下有所有文件,并且需要搜索和创建一些文件。 Linux下的find命令在目录结构中搜索文件并执行指定的操作。 提供了相当多的搜索条件,很强大。 如果不指定搜索目录,find将扫描整个系统。 即使系统包含网络文件系统,find命令也对该文件系统有效。 许多人倾向于在后台运行非常消耗资源的find命令,因为这可能需要很长时间来遍历大型文件系统。
命令功能
用于在文件树中查找文件并进行适当的处理。 (可能会访问磁盘。
1.find命令格式
find pathname-options [-print-exec-ok . ]
2 .命令参数
用pathname: find命令搜索到的目录路径。 例如,表示当前目录,/表示系统根目录;
-print:find命令将匹配文件输出到标准输出。
-exec:find命令对匹配的文件执行此参数提供的shell命令,以执行搜索完成后的操作。 相应命令的形式例如为
-exec ls -l {} ;
注意; 之间的空间;
-ok:的工作方式与-exec相同,只是在更安全的模式下运行参数提供的shell命令,并提示用户在运行每个命令之前确定是否运行。 形式如下。
-确定ls-l { } ;
3 .命令选项
-选项:
-按-name :文件名查找文件;
-perm :根据文件权限搜索文件;
-prune:使用此选项可防止在当前指定的目录中找到find命令。 如果同时使用-depth选项,find命令将忽略-prune。
-user :按文件所有者搜索文件;
-group:按文件所属的组搜索文件;
-mtime - n n:根据文件的修改时间搜索文件。 -n表示文件的修改时间在当前n天以内,n表示文件的修改时间在当前n之前。 find命令还具有-atime和-ctime选项,但与-m time选项相同。
-nogroup :查找没有有效所属组的文件。 也就是说,/etc/groups中不存在该文件所属的组。
-nouser :查找没有有效所有者的文件。 也就是说,/etc/passwd中不存在该文件的所有者。
查找结果
查找结果
-newer file1:查找更改时间最接近文件file1的更改时间的文件;
-type :查找以下类型的文件:
b -块设备文件d -目录c -字符设备文件; p -管道文件l符号链接文件f -普通文件
-size n [c]表示要以字节为单位搜索的字节为n的文件,n (表示大于n字节的文件),-n (表示小于n字节的文件);
-depth :搜索文件时,首先在当前目录中搜索文件,然后在该子目录中搜索。
-fstype :查找文件系统类型中的文件,该文件通常包含有关此系统中的文件系统的信息(位于配置文件/etc/fstab中)。
-mount :查找文件时不跨越文件系统的mount点;
- follow :如果find命令检测到符号链接文件,则跟踪链接到的文件;
-cpio :对匹配文件使用cpio命令将这些文件备份到磁带设备。
4 .命令功能
用于在文件树种中搜索文件并进行适当的处理。 (可能会访问磁盘。
5 .总结
综上所述,Linux上的find命令提供了相当多的搜索条件,选择很多,功能非常强大。 即使系统包含网络文件系统(NFS ),find命令在该文件系统上仍然有效,并且只有您具有相应的权限。 因此,在运行非常消耗资源的find命令时,很多人倾向于在后台运行。 这是因为遍历大文件系统可能需要很长时间。 这里指的是30G以上的文件系统。
(上例中的命令参数pathname很少显示,缺省为当前路径。)