在linux系统中,find命令是一种功能强大且灵活的工具,用于在文件系统中搜索文件和目录。该命令提供了多种查找条件,使得用户可以根据不同的属性来定位目标文件或目录。
find命令的基本格式为:find pathname -options [-print -exec -ok…]
其中,pathname指定了find命令开始搜索的路径。例如,/home/tools/tongyan。
以下是一些常用的选项及其功能:
- -print:将匹配的文件输出到标准输出。
- -exec:对匹配的文件执行指定的shell命令。命令格式为’command’ {} ;,其中{}表示find命令找到的文件名,;表示命令结束。
- -ok:与-exec类似,但执行前会提示用户确认。
find命令的常用查找条件包括:
- -name filename:按文件名查找。
- -perm:按文件权限查找。
- -user username:按文件所有者查找。
- -group groupname:按文件所属组查找。
- -mtime -n +n:按文件修改时间查找,-n表示n天以内,+n表示n天以前。
- -atime -n +n:按文件访问时间查找。
- -ctime -n +n:按文件创建时间查找。
- -nogroup:查找无有效属组的文件。
- -nouser:查找无有效属主的文件。
- -newer f1 !f2:查找更改时间比f1新但比f2旧的文件。
- -type b/d/c/p/l/f:按文件类型查找,分别表示块设备、目录、字符设备、管道、符号链接、普通文件。
- -size n[c]:按文件大小查找,n表示块数或字节数。
- -depth:在进入子目录前先搜索当前目录。
- -fstype:查找位于特定文件系统类型的文件。
- -mount:不跨越文件系统挂载点查找文件。
- -follow:跟踪符号链接文件。
- -cpio:将匹配的文件备份到磁带设备中。
- -prune:忽略某个目录。
具体查找方式包括:
-
按文件类型查找:find test1 -type d
linux命令之find的用法_文件系统
-
按文件名查找:find test1 -name test2
Linux命令之find的用法_linux_02
-
按文件属主查找:find test1 -user wangmengting
Linux命令之find的用法_grep_03
-
按文件所属组查找:find test1 -group wangmengting
Linux命令之find的用法_修改时间_04
-
按文件修改时间查找:find test1 -mtime -1
Linux命令之find的用法_find_05
其他查找方式这里不再一一展示。
如果查找结果过多,可以使用以下方法进行显示:
- -print:将匹配的文件输出到标准输出,例如find /home -type f -print。
此外,还可以对查找结果进行额外操作:
- -exec:对匹配的文件执行额外操作,例如find /test1 -name “test2.txt” -exec rm {} ;。其中{}表示find找到的文件,;表示命令结束,是转义字符。
关于-mtime参数的使用:
- -mtime n:查找文件修改时间距今为n天的文件。
- -mtime -n:查找文件修改时间距今在n天以内的文件。
- -mtime +n:查找文件修改时间距今在n天以前的文件。
例如:
- -mtime 0:查找文件修改时间距今不到1天的文件。
- -mtime 1:查找文件修改时间距今1天的文件。
- -mtime +1:查找文件修改时间距今大于1天的文件,即2天以上的文件。
- -mtime -1:查找文件修改时间距今小于1天的文件。
需要注意的是,-mtime +1查找的是修改时间距今超过2天的文件,因为n只能是整数,+1表示大于1天,即大于24小时,最接近的整数是2,所以实际上是查找48小时以外的文件。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END