find文件无所遁形

Wednesday, March 11, 2020

用法:find 何处 何物 做什么

  • 何处:指定在哪个目录中查找。此目录的所有子目录也会被查找,与 locate 命令的查找所有文件数据库的所有记录不同,find 命令可以限定查找目录,比如我们可以只让 find 查找 /home 目录。默认地,假如我们没有给出"何处"这个参数,那么 find 命令会在当前目录及其子目录中查找;
  • 何物:也就是要查找什么。我们可以根据文件的名字来查找,也可以根据其大小来查找,也可以根据其最近访问时间来查找等等,这个参数是必须的
  • 做什么:用 find 命令找到文件后,可以对每个文件做一定的操作,称为“后续处理”。默认地,假如不指定这个参数,那么 find 命令只会显示找到的文件,不会做其它事情。

示例

find /var/log -name "syslog*"
find /var -size +10M
find -name "*.jpg" -atime -7
find . -name "new_file" -type d
操作查找结果

//find -name "*.jpg" 等价于find -name "*.jpg" -print
-print 参数用来打印结果。

格式化打印查找结果

find . -name "*.jpg" -printf "%p - %u\n"

  • %p :文件名;
  • - :就是一个短横;
  • %u :文件的所有者;
  • \n :用于换行。
删除查找到到文件

find -name "*.jpg" -delete

调用命令

使用-exec参数可以后接一个命令,对每个查找到的文件进行操作。[exec是execute缩写]

示例: find -name "*.jpg" -exec chmod 600 {} \;

  • 该操作不用双引号扩起来
  • {}会用查找到的每个文件来替换
  • \;是必须对结尾

-exec 换成 -ok确认提示。

LinuxShell

数据处理天下无敌

nohup后台启动

comments powered by Disqus