Linux:忽略目录结构cp

命令:

find a -print0 | xargs -0 -I{} cp {} dist

首先find a会列出a文件夹下所有文件到标准输出,
xargs会把标准输出的内容作为参数传给后面的命令,此处为查找到的所有文件,
-I参数指定代替标准输出字符串,后面用此字符串确定传过来的参数的位置。
最后执行cp find输出的内容 dist,将文件拷贝到dist目录

上面命令相当于:

find a -exec cp {} dist \;

以上命令若有重名文件则会覆盖,修改命令为若有重名文件则重命名重名文件:

dist=/root/dist  #定义一个变量,为要复制到的目录路径,末尾没有/
find a | ( while read i; do if [ -e $dist/${i##*/} ]; then mv $dist/${i##*/} $dist/${i##*/}_1; cp $i $dist; else cp $i $dist; fi; done )
posted @ 2018-12-24 09:14  xuejianbest  阅读(294)  评论(0编辑  收藏  举报