linux 多个文件复制

  1. 目录结构如下:

/a/xx1/api.log(xx1目录下除了api.log还有其他的各种文件)
/a/xx2/api.log(xx2目录下除了api.log还有其他的各种文件)
/a/xx3/api.log(xx3目录下除了api.log还有其他的各种文件)
......
/a/xx100/api.log(100目录下除了api.log还有其他的各种文件)

  1. 找到所有的api.log,并且拷贝到一个目录下面,拷贝时保存api.的路径。比如拷贝到/b/目录。

  2. 期望的结果:

/b/xx1/api.log
/b/xx2/api.log
/b/xx3/api.log
......

阅读 5.4k
3 个回答

保存api.的路径是指只保存api.log的父目录吗? 结果为 /b/xx1/api.log
可以这样执行:

for file in `find /a -name 'api.log'`
do
    DIR=$(basename `dirname $file`)
    mkdir -p /b/$DIR && cp -f $file /b/$DIR
done
cd /a
cp --parents */api.log /b/
cd /a
cp -t /b xx{1..100}/api.log --parents
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题