假设我有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)
,或者将输出存储在变量中以进行脚本编写。