【发布时间】:2016-04-09 20:41:31
【问题描述】:
在 Linux 中,我有一个永久的目录结构,它存储 5 种不同类型的文件,可以追溯到 2005 年的每个月,就像这样
2005/01/file1 文件2 文件3 文件4 文件5
2005/02/file1 文件2 文件3 文件4 文件5
...
2015/11/file1 文件2 文件3 文件4 文件5
2015/12/file1 文件2 文件3 文件4 文件5
我需要从相同的临时目录结构中替换 file1 的每个实例,除了临时结构中的每个叶子只有 file1(file2/3/4/5 不存在)。如何执行一个批量命令将永久结构中的每个 file1 重命名为 file1.bak,然后执行一个命令将每个新的 file1 实例复制到永久结构中的正确位置?
【问题讨论】:
-
你可以试试
rename 1 1.bak 20??/??/file1。或者,您可以使用 for 循环。for dir in 20??/??; do mv ${dir}/file1 ${dir}/file1.bak。至于复制到永久目录,只需要在父目录前加上前缀,使用与for循环相同的逻辑即可。