【问题标题】:Linux copying subdirectories with same name to a fileLinux将同名子目录复制到文件中
【发布时间】:2014-09-18 07:55:56
【问题描述】:

想象一个看起来像这样的目录结构:

/a1/b1/c1/O

/a1/b2/c2/O

/a1/b3/c3/O

如何将“O”目录的所有内容复制到一个文件中?

我试过cp -r /a1/*/O ~/O,但失败了

【问题讨论】:

  • 你试过cp -r /a1/*/O/ ~/O
  • @coin 是的,结果是一样的。

标签: linux bash


【解决方案1】:

还需要一个 glob 模式。使用:

cp -r /a1/*/O/* ~/O

或使此命令适用于任何深度使用find

find /a1 -type d -name 'O' -print0 | xargs -0 -I % cp -r %/* ~/O

【讨论】:

  • +1,能不能修改成对目录深度不敏感?例如,它应该适用于 /a1/b1/c1/d1/O 和 /a5/b5/c5/d5/e5/f5/g5/h5/O
  • 既然你提到了这一点,我发现了类似的东西:stackoverflow.com/questions/13236344/…
  • 第一个命令不应该是 cp -r /a1/*/*/O/* ~/O,因为问题说 O/ 在 a1 中是 2 个级别,而不是 1 个。
  • 是的,没错,但我猜由于深度可变,OP 发现find 更合适。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-14
  • 2012-04-08
  • 2016-12-29
  • 2014-04-30
  • 2014-07-25
  • 1970-01-01
  • 2022-11-15
相关资源
最近更新 更多