曲径通幽论坛

标题: 拷贝当前目录下所有 .sh 结尾的文件到当前目录下的 mdir 文件夹中 [打印本页]

作者: beyes    时间: 2009-7-9 10:53
标题: 拷贝当前目录下所有 .sh 结尾的文件到当前目录下的 mdir 文件夹中
开始用
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 表示将标准错误输出忽略,不然如果没有权限将出现意外情况。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2