Unix系统下Find命令的三个高级应用(3)

  三、交互式复制找到的文件。

  如现在用户需要把某个文件夹下自己所创建的文件复制到另外一个目录中。但是并不是所有的文件,用户希望能够自己来选择是否需要进行复制。要实现这个目的的话,就需要用到find命令中的ok参数。在命令参数种加入-ok选项,主要是告诉操作系统这个命令需要以交互式的方式来执行。当用户输入y的话,操作系统就会执行这些动作;而输入n的话,则会忽略。

  如要实现上面这个需求,可以执行这个命令来实现。Find /home –user Oracle –ok cp {} /backup \;此时这个OK选项的意思就是当把每个查找到的文件移动到指定的目录时,不管目标文件是否存在,都需要用户进行确认。只有用户输入y后,ok 后面的命令才会被执行,否则的话就会被忽略不计。除了OK选项外,有些命令本身就包含了一个交互性的选项。如rm文件删除命令。若没有带-i交互性选项的话,则操作系统会直接删除文件,而不会等待用户确认。但是若在这个命令后面加入-i选项的话,则每删除一个文件的话,系统就会提示用户确认。只要命令本身就支持这个-i交互式选项,那么在find命令中就可以直接使用这个参数,而不需要利用ok选项。在大部分命令中,这两个选项的效果是相同的。但是有些则不同。如CP命令。Cp –i命令表示把文件从一个地方复制到另外一个地方,如果目标文件已经存在的话,则会提醒用户是否需要覆盖;如果不存在的话则会直接复制过去。但是采用ok 选项的话则表示无论目标文件是否存在,都需要系统管理员一一进行确认。也就是说-i选项只有在目标文件存在的时候,可能需要覆盖才会让用户进行确认。而ok选项的话则根本不管目标文件存在与否,都要进行确认。到底需要采用哪个参数,则就要根据用户的需要了。

  另外也可以利用这个find命令来交互式的删除文件。如Find /home –user oracle –exec rm –I {} \;。在这个命令中就是用到了rm删除命令自带的-i交互式选项。默认情况下文件删除时是不需要用户确认的。但是无疑这是比较危险的一个动作。为此在涉及到文件删除操作、或者原始文件可能被覆盖的情况下,最好能够使用交互式的方式进行。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/28576.html