一尘不染

创建新文件,但如果bash中已经存在文件名,则添加数字

linux

我发现了类似的问题,但在Linux / Bash中却找不到

我希望我的脚本使用给定名称(通过用户输入)创建一个文件,但是如果文件名已经存在,请在末尾添加数字。

例:

$ create somefile
Created "somefile.ext"
$ create somefile
Created "somefile-2.ext"

阅读 316

收藏
2020-06-03

共1个答案

一尘不染

以下脚本可以为您提供帮助。您不应同时运行脚本的多个副本,以免出现竞争状况。

name=somefile
if [[ -e $name.ext || -L $name.ext ]] ; then
    i=0
    while [[ -e $name-$i.ext || -L $name-$i.ext ]] ; do
        let i++
    done
    name=$name-$i
fi
touch -- "$name".ext
2020-06-03