如何在Bash中检查文件或目录是否存在(代码示例)

介绍Linux 中有几个函数仅在特定文件或目录存在时才起作用。Bash 是一个解释命令的 shell。你可以使用一个
Bash如何检查文件或目录是否存在?在本指南中,了解如何使用bash 命令检查文件或目录是否存在。

如何在Bash中检查文件或目录是否存在(代码示例)

文章图片
先决条件
  • 一个 Linux 操作系统
  • 访问终端窗口/命令行 (Ctrl-Alt-T / Ctrl-Alt-F2)
注意:你可能会遇到术语bash script。这是对 shell 的几个命令的序列。script可以被保存为一个文件,并经常被用于多个系统命令自动化成单个动作。
如何检查文件是否存在Bash检查文件或目录是否存在的方法:要测试文件/tmp/test.log,请从命令行输入以下内容:
test –f /tmp/test.txt

第一行执行测试以查看文件是否存在。第二个命令echo显示结果 0 表示文件存在,1 表示未找到文件。
echo $?

在我们的示例中,结果为 1。
如何在Bash中检查文件或目录是否存在(代码示例)

文章图片
Bash检查文件或目录是否存在示例:现在尝试创建一个文件,然后对其进行测试:
touch /tmp/test.txt

test –f /tmp/test.txt

echo $?

由于我们事先创建了文件,现在的结果是 0:
如何在Bash中检查文件或目录是否存在(代码示例)

文章图片
你还可以使用方括号代替test命令:
[ –f /tmp/test.txt ]

echo $?

如何检查目录是否存在Bash如何检查文件或目录是否存在?要检查目录是否存在,请在–d(用于目录)的测试命令中关闭–f选项:
test –d /tmp/test

echo $?

创建该目录,然后重新运行测试:
touch /tmp/test

test –d /tmp/test

echo $?

此命令的工作方式与文件相同,因此使用方括号代替test命令也适用于此。
注意:如果你正在搜索文件或目录,因为你需要删除它,请参阅我们的使用 Linux 命令行删除文件和目录的指南。
如何检查文件是否不存在Bash检查文件或目录是否存在的方法:通常,如果文件存在,则对文件的测试返回 0(真),如果文件不存在,则返回 1(假)。对于某些操作,你可能需要颠倒逻辑。如果你编写脚本以仅在特定文件不存在时创建该文件,这将很有帮助。
要创建一个不存在的文件,请在命令行中输入以下内容:
[ ! –f /tmp/test.txt ] & & touch /tmp/test.txt

感叹号!代表不。此命令可以确保有没有一个文件名为test.txt的在/ tmp目录目录。你不会看到任何事情发生。
要查看系统是否创建了该文件,请输入以下内容:
ls /tmp

Bash检查文件或目录是否存在示例:你应该会看到列出的test.txt。你可以对目录使用类似的命令 - 将-f选项替换为-d:
[ ! –d /tmp/test ] & & touch /tmp/test

如何检查多个文件Bash如何检查文件或目录是否存在?要同时测试两个文件,请使用& & 选项添加第二个文件:
[ -f /tmp/test.txt & & -f /tmp/sample.txt ] & & echo “Both files were found”

要使用通配符测试多个文件,例如星号*代表各种字符:
[ -f /tmp/*.jpg ] & & echo “Files were found”

像往常一样,将–f选项更改为–d可以让你对多个目录运行相同的测试。
文件测试运算符以查找特定类型的文件以下是用于测试以查找特定类型文件的几个命令:
  • -f –文件
  • -d –目录
  •   L – 符号链接
  • -r -可读
  • -x  – 可执行文件
  • w ^  -写
还有许多其他选项可用。请查阅主页 (test ––help) 以获取其他选项。
使用代码片段Bash检查文件或目录是否存在的方法:前面的命令适用于命令提示符下的简单两行命令。你还可以将bash与多个命令一起使用。当多个命令串在一起时,它们被称为脚本。
一个脚本通常保存为文件并执行。脚本还使用逻辑运算符来测试条件,然后根据测试结果采取行动。
要创建脚本文件,请使用Nano 编辑器  打开一个新文件:
sudo nano bashtest.sh

输入下面的片段之一,包括#!/bin/bash标识符。使用Ctrl-o保存文件,然后使用Ctrl-x退出 Nano。然后,输入以下命令运行脚本:
bash bashtest.sh

Bash如何检查文件或目录是否存在?以下代码片段测试特定文件的存在。如果文件存在,脚本会在屏幕上显示文件存在。
#!/bin/bashif [ -f /tmp/test.txt ]thenecho “File exists”fi

Bash检查文件或目录是否存在示例:如果你正在检查目录,这也是一样的。只需将-f选项替换为-d:
#!/bin/bashif [ -d /tmp/test ]then echo “File exists”fi

此命令检查目录/tmp/test。如果存在,系统显示文件存在。
结论【如何在Bash中检查文件或目录是否存在(代码示例)】你现在可以使用 bash 来检查文件和目录是否存在。你还可以创建简单的测试脚本,因为你现在已经了解了基本 bash 脚本文件的功能。

    推荐阅读