Bash脚本在目录树中查找文件并将其附加到另一个文件

时间:2009-03-27 23:58:28

标签: bash scripting

标题比我在脚本中尝试表达的功能更加简化。

我有一个包含各种内容的单层深度目录树(比例子大得多),尽管我只感兴趣的是两个特定的文件。一个名为“current”的文件和另一个名为“revisions”的文件

- foo
   |
   |-> current

- bar
   |
   |-> current
   |-> revisions

- baz
   |
   |-> not-affected

脚本将从父目录触发到foo / bar / baz,它将执行以下操作

  1. 扫描所有子目录
  2. 当找到包含“当前”的目录时,它将

    1. 将'current'的内容附加到修订'cat $ {pwd} / current>> $ {pwd} / revisions'
  3. 不包含名为“current”的文件的目录将保持不受影响

2 个答案:

答案 0 :(得分:1)

如果它是一个深度,这应该工作:

for c in */current; do cat ${c} >> ${c%%current}revisions; done

答案 1 :(得分:1)

for i in */current; do
  cat "${i}" >> "{i%/*}/revisions"
done

请注意,如果不存在,则会创建修订版。