linux中文件复制使用的是命令cp ,所以用find查找到文件所在位置后,可通过如下方法复制文件:
1、使用find命令找到文件或文件夹所在的位置A
2、使用cp 命令将A处文件拷贝到B处;cp -r A B
-r指递归处理
mkdir -p $(find /data -name "*.jsp" -exec dirname {} \; | awk -F'data' '{print "/cms"$2 }' )
eval $(find /data -name "*.jsp" | awk -F'data' '{print "cp "$1"data"$2 " /cms"$2";"}' )
抱歉,上面的代码弄了一个bug出来,重写一个:
mkdir -p $(find /data -name "*.jsp" -exec dirname {} \; | sed -n 's/\/data//p' | awk '{print "/cms" $1}' )
eval $(find /data -name "*.jsp" | sed -n 's/\/data//p' | awk '{print "cp /data" $1 " /cms" $1 ";"}' )
用你的命令试了一下,并没有发现这个情况
find /data -name *.jsp -exec cp {} /cms \;
/data下的东西都在的啊
cd /data
tar cf - `find . -name "*.jsp"` | tar xf - -C /cms
即可。
find /data -name "*.jsp" -exec cp {} cms \;
find /data -name "*.jsp" -exec cp {} /cms \;