迹忆博客
当前位置: 主页 > 学无止境 > 操作系统 > 文章

linux应用——查找文件进行拷贝【案例】

发布时间: 2016-09-21 作者: 迹忆 浏览次数:

本篇向大家分享一个linux应用的案例。要求是这样的:

/a 目录下面的内容

/a/login1.txt
/a/login2.txt
/a/login3.txt
/a/login4.txt
/a/b/login5.txt
/a/b/login6.txt

我们将/a 目录下面的所有以login开头的文件名找出来拷贝到目录/login 下。

利用find命令就可以很好的解决这个问题,其使用方式有两个。

第一 利用find命令的选项-exec来执行相应的命令

# find /a –name login* -exec cp {} /b \;

{} 表示的是由find找到的内容

-exec 是find命令额外动作的开始; \;表示的是额外动作的结束。-exec和\;中间的部分就是额外动作执行的命令。

第二 利用管道(|) 和 xargs 命令

# find /a –name login* | xargs cp –t /b

xargs 读取find的结果作为cp的输入数据。这里需要注意的是cp命令一定要加-t选项。因为-t选项后面跟着的目录是目标目录。如果不加-t的话-b会被认为是源目录,而xargs读入的文件成了目标目录。这样是会报错误的。

上面两种方式都可以解决我们的需求。希望本文对大家有所帮助。

除非注明转载,本站文章均为原创,欢迎转载,转载请以链接形式注明出处

本文地址: