Nic*_*ire 8 command-line files
我想知道是否有可能创建一个文件的命令,但是每次执行该命令时,它都不会覆盖上一次执行时创建的文件。
例如:touch test1.txt将创建 1 个名为test1.txt. 但是下次我执行它时,我希望调用新文件test2.txt或类似的东西。因此无需覆盖已经存在的文件。在某种程度上,它可以多次执行而不会出现问题。
不要误解我,我不是想用一个命令创建多个文件。
提前致谢!
最简单的解决方案是在文件名中添加时间戳,而不是使用单个数字。
创建空文件的最简单方法是生成一个touch test$(date +%Y%m%d-%H%M%S)名为test20110802-170410. 第二次test*将获得更新的时间戳,因此将产生 2 个文件。
我怀疑是否存在一个通用命令来做到这一点,但你可以想到这样的事情:
create() {
read prefix number suffix < <(sed -r 's/(.*)([0-9]+)\.(.*)$/\1 \2 \3/' <<<"$1")
while true; do
file="$prefix$number.$suffix"
if [[ -e "$file" ]]; then
((number++))
else
touch "$file"
break
fi
done
}
Run Code Online (Sandbox Code Playgroud)
函数的输入参数被拆分为前缀、数字、后缀,然后直到文件存在,数字才会递增。找到一个空闲插槽,文件是用touch.
拆分机制应根据您的需要进行调整,并应添加各种错误检查。
| 归档时间: |
|
| 查看次数: |
3163 次 |
| 最近记录: |