曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 6699|回复: 0
打印 上一主题 下一主题

拷贝当前目录下所有 .sh 结尾的文件到当前目录下的 mdir 文件夹中

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34387
跳转到指定楼层
楼主
发表于 2009-7-9 10:53:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
开始用
cp `find / -name '*.sh'` ~/mdir

但是,这样做还不够严谨。如果,当前目录下有个目录为 a.sh 的文件夹,而这个文件夹里也有许多 .sh 文件,那这么做并不能达到拷贝所有的 .sh 文件的目的,其中会提示略过 a.sh 目录,所以 a.sh 目录下边的 .sh 文件并不能实现拷贝。

那么如下所用,会怎么样呢:
cp -r `find ./ -name '*.sh'` mdir
当上面的命令执行完后,当前目录下的所有以 .sh 结尾的文件都会被拷贝到 mdir 目录中,而且还会包括 a.sh 这个目录及其下的所有的文件。那么,这里假设 a.sh 这个文件夹里还有许多不是以 .sh 结尾的文件也会一同被拷贝过去,而这样的结果不是我们想要的!

那如下执行
cp `find ./ -type f -name '*.sh' 2>/dev/null` mdir
如此以来,会忽略掉 a.sh 目录,也就是说,不会拷贝 a.sh 目录及所有在其下的文件到 mdir 中;
在 find 命令里,用了 -type f 选项,指明了要拷贝的是普通文件,其他的文件类型则一概不拷贝;
另外,2>/dev/null 表示将标准错误输出忽略,不然如果没有权限将出现意外情况。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-19 11:38 , Processed in 0.075305 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表