如何将文件夹“test”复制到另一个文件夹,其编号增加为 test1、test2 test3

如何将文件夹“test”复制到另一个文件夹,其编号增加为 test1、test2 test3

我对此还很陌生,但每天都在进步。

我现在有点困惑……

我想要做的事情如下:

将文件夹 /test 复制到另一个名为 /test 的文件夹

但是我想要做的是,每次我执行“复制”命令时,我希望它检查/test文件夹是否已经存在,如果是,则在文件夹名称中增加一个数字,如/test1,/test2等等,如果达到例如test10,则重新开始。

实现这一目标的最佳方法是什么?

答案1

copytest假设您有一个名为test的文件夹,请编写一个包含以下内容的shell脚本:

#!/bin/bash

i=1
while true
do
    if [ -d test$i ]
    then
        i=$((i+1))
    else
        cp -r test test$i
        break
    fi
    if [ $i -eq 11 ]
    then
        rm -r test{1..10}
        cp -r test test1
        break
    fi
done

现在使用使其可执行chmod u+x copytest,并且每次调用时,./copytest您都会获得一个名为的新副本test<n>

解释:

  • [ -d test$i ]检查是否已存在文件夹 test$i
  • break退出由 发起的无限循环while true
  • 第十一次调用将删除所有副本并从 test1 重新开始。

这实现了您在问题中要求的功能(创建越来越多的测试副本)。如果您希望副本在每次调用时“继续前进”(即 test10 被丢弃,test9 变为 test10,等等),那么您应该查看第一条logrotate评论中 @Jean-Marie 建议的命令。

相关内容