1.find命令:
find pathname -options [-print -exec -ok ...]
2.用法:
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
-name 按照文件名查找文件。
find . -name "*.log" 在当前目录查找 以.log结尾的文件。
-perm 按照文件权限来查找文件。
find /opt/soft/test/ -perm 777 查找/opt/soft/test/目录下 权限为 777的文件
-type 查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。- n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。
find . -size +1000c 查找当前目录大于1K的文件
-amin n 查找系统中最后N分钟访问的文件
-atime n 查找系统中最后n*24小时访问的文件
-cmin n 查找系统中最后N分钟被改变文件状态的文件
-ctime n 查找系统中最后n*24小时被改变文件状态的文件
-mmin n 查找系统中最后N分钟被改变文件数据的文件
-mtime n 查找系统中最后n*24小时被改变文件数据的文件
find -atime -2 查找48小时内修改过的文件
3.exec:
-exec 参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。
{} 花括号代表前面find查找出来的文件名。
find . -type f -exec ls -l {} \; find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出。
find . -name "*.log" -mtime +5 -ok rm {} \; 在目录中查找更改时间在n日以前的文件并删除它们,在删除之前先给出提示
find . -name "*.log" -exec mv {} .. \; 查找文件移动到指定目录