linux shell命令find详细解释

find 命令的一般形式为:

find pathname -options [-print -exec -ok]



参数说明:

  1. pathname: find命令所查找的目录路径。例如用"."来表示当前目录,用"/"来表示系统根目录
  2. -print: find命令将匹配的文件输出到标准输出。
  3. -exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {} \;,注意{ }和\;之间的空格。
  4. -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数 所给出的shell命令,在执行每一个命令之前,都会给出提示,让用 户来确定是否执行。

举例

find . -type f -exec ls -l {} \;

查找当前目录下普通文件格式的文件,显示出来

  • b - 块设备文件。
  • d - 目录。
  • c - 字符设备文件。
  • p - 管道文件。
  • l - 符号链接文件。
  • f - 普通文件。
find logs -type f -mtime +5 -exec rm {} \;

在 /logs 目录中查找更改时间在5日以前的文件并删除它们

find . -name "*.conf"  -mtime +5 -ok rm {} \;

find命令在当前目录中查找所有文件名以 .conf 结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示

find /etc -name "passwd*" -exec grep "sam" {} \;

find命令首先匹配所有文件名为“ passwd*”的文件,例如passwd、passwd.old、passwd.bak,然后执行grep命令看看在这些文件中是否存在一个sam用户。

find . -name "aa.sh" -exec cp {} bb.sh \;

把当前目录下的aa.sh的文件复制为bb.sh文件,注意“{}”的位置!!!

find  .  -name  "[A-Z]*" -print

想要的当前目录及子目录中查找文件名以一个大写字母开头的文件(-print可以略)

find . -name "[a-z][a-z][0--9][0--9].txt" -print

在当前目录查找文件名以两个小写字母开头,跟着是两个数字,最后是*.txt的文件

find . -perm 755 -print

在当前目录下查找文件权限位为755的文件,即文件属主可以读、写、执行,其他用户可以读、执行的文件

find /etc -user uucp -print

在/ e t c目录下查找文件属主为u u c p的文件

find / -name "file*" -print | xargs echo "" > /temp/core.log

在整个系统中查找内存信息转储文件(core dump) ,然后把结果保存到/tmp/core.log 文件中

find . -perm -7 -print | xargs chmod o-w

在当前目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限

标签: linux, linux shell

相关文章推荐

添加新评论 (无需注册,可直接评论)