bash shell - 测试文件或目录是否存在

虽然使用bash的编程工作,我们很多时候需要检查,如果文件已经存在,创建新的文件,在文件中插入数据。此外,我们需要一些时间来从其他脚本执行其它脚本。 本文提供有关在系统中测试文件和目录存在的一些细节。这可能对你非常有帮助的,而写shell脚本。

1. Bash shell中 - 测试文件是否存在

如果我们需要添加一些内容或者需要从脚本创建文件。首先确认文件已经存在与否。例如,在文件 /tmp/testfile.log我的脚本创建日志的之一,我们需要确保该文件存在与否
#!/bin/bash

if [ -f /tmp/testfile.log ]
then
    echo "File exists"
fi
以上语句也可以编写使用如下的测试关键字
#!/bin/bash

if test -f /tmp/testfile.log
then
    echo "File exists"
fi
或在同一行中,我们可以按照以下写。而在shell脚本编写这是非常有用的。
[ -f /tmp/testfile.log ] && echo "File exists"
加在上面的命令else部分
[ -f /tmp/testfile.log ] && echo "File exists" || echo "File not exists"

2. bash shell - 测试是否目录存在

有时,我们需要一个特定的目录或需要的目录中创建文件的任何其它原因,我们应该确保该目录存在。例如,我们正在检查  /tmp/mydir 是否存在。
#!/bin/bash

if [ -d /tmp/mydir ]
then
    echo "Directory exists"
fi
以上语句也可以编写使用如下的测试关键字
#!/bin/bash

if test -d /tmp/mydir
then
    echo "Directory exists"
fi
或者在一个单一的行中,我们可以如下写出它
[ -d /tmp/mydir ] && echo "Directory exists"

3. bash shell - 创建文件目录仅当NOT EXISTS时

这是其他人创建它们,你会得到错误信息之前,检查文件是否存在的最佳实践。 对于文件:
[ ! -f /tmp/testfile.log ] && touch /tmp/testfile.log
对于目录:
[ ! -d /tmp/mydir  ] && mkdir /tmp/mydir
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏