Mkdir 添加数字迭代

Mkdir 添加数字迭代

假设我有folder1,我想自动创建一个folder2。现在假设我再次运行此命令,并且我希望每次运行此命令时它都会创建文件夹 3、文件夹 4 等。使目录名称 + 最大数字的 1 然后自动 cd 进入它的最佳方法是什么?

动机:我有一个程序,可以向其中提供多种类型的输入,并生成多个输出文件。如果运行两次或更多次,该程序将覆盖输出文件。我正在设计一个循环,它将所有输入复制到一个文件夹中,执行程序,将输出写入该文件夹,cd 退出,然后在新文件夹中重复此操作。

答案1

这是一个 bash 函数:

mknextdir () {
    stem=${1:-}
    lnum=$(echo "$stem"* | xargs -n1 | cut -c $(( ${#stem} + 1))- | sort -n | tail -n1)
    nn="${stem}$(( $lnum + 1))"
    mkdir $nn
    echo $nn
}

mknextdir folder对于您的示例案例,将其称为。它会回显它所创建的目录的名称,因此要自动移动到该目录,您可以执行以下操作 cd $(mknextdir folder),或者将输出存储在变量中以进行脚本编写。

相关内容