linux中判断没有文件就创建的命令

不及物动词 其他 172

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux中,可以使用`test`命令结合`! -f`选项判断是否存在文件,如果不存在则创建文件,具体命令如下:

    “`shell
    if [ ! -f 文件名 ]; then
    touch 文件名
    fi
    “`

    以上命令中,`test`命令用于判断条件,`-f`选项用于检查是否是一个普通文件,`!`符号表示取反。如果条件为真,则执行`touch`命令创建文件。

    另外,也可以使用`[ -f 文件名 ]`结合逻辑运算符`||`判断是否存在文件,如果不存在则创建文件,具体命令如下:

    “`shell
    [ -f 文件名 ] || touch 文件名
    “`

    以上命令中,`[ -f 文件名 ]`判断条件为真时,执行`touch`命令创建文件。

    通过以上两种方式,我们可以在Linux中判断文件是否存在,如果不存在则创建文件。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Linux中,可以使用`test`命令或`[ ]`来判断文件是否存在,并结合shell脚本的条件语句来实现没有文件就创建的操作。以下是在Linux中判断没有文件就创建的几种常用方法:

    1. 使用`test`命令:
    “`bash
    if ! test -f file.txt; then
    touch file.txt
    fi
    “`
    这个命令首先使用`test`命令来判断文件`file.txt`是否存在,并且是否是一个普通文件。若文件不存在或者不是一个普通文件,则使用`touch`命令来创建文件。

    2. 使用`[ ]`:
    “`bash
    if [ ! -f file.txt ]; then
    touch file.txt
    fi
    “`
    这个命令与上面的方法类似,使用`[ ]`来进行条件判断,`! -f file.txt`表示文件`file.txt`不存在。

    3. 使用`test`命令的`-e`选项:
    “`bash
    if ! test -e file.txt; then
    touch file.txt
    fi
    “`
    这个命令使用了`test`命令的`-e`选项来判断文件是否存在。`-e`选项表示文件存在。

    4. 使用`[ ]`的`-e`选项:
    “`bash
    if [ ! -e file.txt ]; then
    touch file.txt
    fi
    “`
    这个命令与上面的方法类似,使用`[ ]`的`-e`选项来判断文件是否存在。

    5. 使用`stat`命令:
    “`bash
    if ! stat file.txt > /dev/null 2>&1; then
    touch file.txt
    fi
    “`
    这个命令使用`stat`命令来获取文件信息,将输出重定向到`/dev/null`,并将标准错误输出重定向到标准输出。如果文件不存在,`stat`命令会返回非零值。

    以上是在Linux中判断没有文件就创建的几种常用方法,可以根据实际情况选择适合的方法。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Linux中判断指定文件是否存在并根据判断结果执行相应操作的命令是`test`命令,它通常与条件语句结合使用。针对文件的存在与否,我们可以使用以下命令进行判断并创建文件:

    “`shell
    if test -e 文件路径
    then
    echo “文件已存在”
    else
    touch 文件路径
    fi
    “`

    上述代码中,我们使用了`-e`参数来判断指定路径的文件是否存在。如果文件存在,执行`then`后的命令,此处是向终端打印”文件已存在”;如果文件不存在,执行`else`后的命令,此处是使用`touch`命令创建一个新的文件。

    此外,在Linux中还可以使用其他命令进行文件存在性的判断和创建文件的操作。下面介绍一些常用的方法。

    ## 使用 ls 命令判断文件是否存在

    `ls`命令用于显示指定路径下的文件和目录信息。通过检查`ls`命令的返回结果来判断指定文件是否存在。

    “`shell
    if ls 文件路径 &> /dev/null
    then
    echo “文件已存在”
    else
    touch 文件路径
    fi
    “`

    上述代码将`ls`命令的输出重定向到`/dev/null`,这样可以消除命令输出,只关注命令的返回状态。如果`ls`命令成功运行(即文件存在),返回状态为0,则执行`then`后的命令;如果`ls`命令返回状态非零(即文件不存在),执行`else`后的命令。

    ## 使用 test 命令加参数 -f 判断文件是否存在

    `test`命令可以进行文件检测,通过指定`-f`参数可以判断指定路径的文件是否存在。

    “`shell
    if test -f 文件路径
    then
    echo “文件已存在”
    else
    touch 文件路径
    fi
    “`

    上述代码中,`-f`参数用于检查指定路径是否为常规文件。如果文件存在且为常规文件,返回状态为0,执行`then`后的命令;如果文件不存在或者存在但不是常规文件,返回状态非零,执行`else`后的命令。

    ## 使用 stat 命令判断文件是否存在

    `stat`命令用于显示文件或文件系统的详细信息,通过判断命令是否执行成功来判断指定文件是否存在。

    “`shell
    if stat 文件路径 &> /dev/null
    then
    echo “文件已存在”
    else
    touch 文件路径
    fi
    “`

    上述代码中,将`stat`命令的输出重定向到`/dev/null`,只关注命令的返回状态。如果`stat`命令成功执行,返回状态为0,则执行`then`后的命令;如果`stat`命令返回状态非零,即文件不存在,执行`else`后的命令。

    总结:
    – 使用`test`命令判断文件是否存在:`if test -e 文件路径`
    – 使用`ls`命令判断文件是否存在:`if ls 文件路径 &> /dev/null`
    – 使用`test`命令加参数`-f`判断文件是否存在:`if test -f 文件路径`
    – 使用`stat`命令判断文件是否存在:`if stat 文件路径 &> /dev/null`

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部