Linux 下找档案很多时会用上 find 指令,当用 find 指令找到档案或目录后,可以在后面加上 -exec 参数,来对每一个找到的档案或目录执行特定指令。
find 指令加上 -exec 参数的具体语法是这样:
$ find /path/to -name “filename” -exec command {} \;
在 -exec 前面是 find 指令找出想要的档案,在 -exec 后面的 command 是要执行的指令, 而 { } 包著的是找到的档案或目录,后面需要加上 \; 完结。
以下是几个 find -exec 的使用例子:
搜寻并删除所有大过 100MB 的档案:
$ find /path/to -size +100M -exec /bin/rm {} \;
找出 .log.old 结尾的档案并删除:
$ find /path/to -name “*.log.old” -exec /bin/rm {} \;
将所有档案 .php 档案改变权限为 644:
$ find /path/to -name “*.php” -exec chmod 644 {} \;
将所有目录改变权限为 755:
$ find /path/to -type d -exec chmod 755 {} \;
将所有属于 “olduser” 的档案,改变为 “newuser”:
$ find /path/to -user olduser -exec chown newuser {} \;