我们经常使用如下的一些方法来删除文件:
find /home/oracle -name abc.txt* | xargs rm -rf
或:
find /home/oracle -name abc.txt* -exec rm -fv {} \;
那我们是否可以结合find来实现批量移动文件呢?我们会尝试:
find /home/oracle -name abc.txt* | xargs mv /tmp
很遗憾,这并不能实现我们批量将文件移动到/tmp。
其实,这很容易理解,rm,或者ls只需要一个"input",比如,删除一个文件,ls一个目录。但是对于mv,或者cp而已,都是需要两个"input",需要source和target。通过管道只能实现一个"input"。
方法还是很多的,比如:
for file in `find /home/oracle -name abc.txt*`
do
mv $file /tmp
done
实际上,可以更简单:
mv `find /home/oracle -name abc.txt*` /tmp