2008年11月2日星期日

find的exec选项

find可以跟一个exec选项来执行命令,这个功能是十分有用的,语法是:

find pathname search-arg -exec shellcommand {} \;


不过很多地方并没有把-exec的内容的写法说得特别明白,往往都只是举了一个rm的例子,如果要执行其它命令的话可能就有一点迷糊。实际上“举一反三”在这里还是很有用的:观察上面的语句,可以猜测{}就代表了find的结果,只要把{}排在语句里面就OK了。下面举一个简单的例子:目录A中有一堆今天下载的文件名为乱码的rar压缩档,还有一堆昨天下载的文件名为乱码的rar。我想把今天下载的这些rar拷贝到根用户的目录中,可以执行下面的命令:

find /A -name "*.rar" -mtime -1 -ok sudo cp {} /root \;


搞明白-exec的写法后,find+命令执行基本上可以无敌了:_P

注:-ok是-exec的安全形式,操作每一个文件前会现询问

没有评论: