我对此还很陌生,但每天都在进步。
我现在有点困惑……
我想要做的事情如下:
将文件夹 /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$ibreak
退出由 发起的无限循环while true
。- 第十一次调用将删除所有副本并从 test1 重新开始。
这实现了您在问题中要求的功能(创建越来越多的测试副本)。如果您希望副本在每次调用时“继续前进”(即 test10 被丢弃,test9 变为 test10,等等),那么您应该查看第一条logrotate
评论中 @Jean-Marie 建议的命令。